Swing Breakout System (SBS)The Swing Breakout Sequence (SBS) is a trading strategy that focuses on identifying high-probability entry points based on a specific pattern of price swings. This indicator will identify these patterns, then draw lines and labels to show confirmation.
How To Use:
The indicator will show both Bullish and Bearish SBS patterns.
Bullish Pattern is made up of 6 points: Low (0), HH (1), LL (2 | but higher than initial Low), New HH (3), LL (5), LL again (5)
Bearish Patten is made up of 6 points: High (0), LL (1), HH (2 | but lower than initial high), New LL (3), HH (5), HH again (5)
A label with an arrow will appear at the end, showing the completion of a successful sequence
Idea behind the strategy:
The idea behind this strategy, is the accumulation and then manipulation of liquidity throughout the sequence. For example, during SBS sequence, liquidity is accumulated during step (2), then price will push away to make a new high/low (step 3), after making a minor new high/low, price will retrace breaking the key level set up in step (2). This is price manipulating taking liquidity from behind high/low from step (2). After taking liquidity price the idea is price will continue in the original direction.
Step 0 - Setting up initial direction
Step 1 - Setting up initial direction
Step 2 - Key low/high establishing liquidity
Step 3 - Failed New high/low
Step 4 - Taking liquidity from step (2)
Step 5 - Taking liquidity from step 2 and 4
Pattern Detection:
- Uses pivot high/low points to identify swing patterns
- Stores 6 consecutive swing points in arrays
- Identifies two types of patterns:
1. Bullish Pattern: A specific sequence of higher lows and higher highs
2. Bearish Pattern: A specific sequence of lower highs and lower lows
Note: Because the indicator is identifying a perfect sequence of 6 steps, set ups may not appear frequently.
Visualization:
- Draws connecting lines between swing points
- Labels each point numerically (optional)
- Shows breakout arrows (↑ for bullish, ↓ for bearish)
- Generates alerts on valid breakouts
User Input Settings:
Core Parameters
1. Pivot Lookback Period (default: 2)
- Controls how many bars to look back/forward for pivot point detection
- Higher values create fewer but more significant pivot points
2. Minimum Pattern Height % (default: 0.1)
- Minimum required height of the pattern as a percentage of price
- Filters out insignificant patterns
3. Maximum Pattern Width (bars) (default: 50)
- Maximum allowed width of the pattern in bars
- Helps exclude patterns that form over too long a period
在脚本中搜索"high low"
HTF Hi-Lo Zones [CHE]HTF Hi-Lo Zones Indicator
The HTF Hi-Lo Zones Indicator is a Pine Script tool designed to highlight important high and low values from a selected higher timeframe. It provides traders with clear visual zones where price activity has reached significant points, helping in decision-making by identifying potential support and resistance levels. This indicator is customizable, allowing users to select the resolution type, control the visualization of session ranges, and even display detailed information about the chosen timeframe.
Key Functionalities
1. Timeframe Resolution Selection:
- The indicator offers three modes to determine the resolution:
- Automatic: Dynamically calculates the higher timeframe based on the current chart's resolution.
- Multiplier: Allows users to apply a multiplier to the current chart's timeframe.
- Manual: Enables manual input for custom resolution settings.
- Each resolution type ensures flexibility to suit different trading styles and strategies.
2. Data Fetching for High and Low Values:
- The indicator retrieves the current high and low values for the selected higher timeframe using `request.security`.
- It also calculates the lowest and highest values over a configurable lookback period, providing insights into significant price movements within the chosen timeframe.
3. Session High and Low Detection:
- The indicator detects whether the current value represents a new session high or low by comparing the highest and lowest values with the current data.
- This is crucial for identifying breakouts or significant turning points during a session.
4. Visual Representation:
- When a new session high or low is detected:
- Range Zones: A colored box marks the session's high-to-low range.
- Labels: Optional labels indicate "New High" or "New Low" for clarity.
- Users can customize colors, transparency, and whether range outlines or labels should be displayed.
5. Information Box:
- An optional dashboard displays details about the chosen timeframe resolution and current session activity.
- The box's size, position, and colors are fully customizable.
6. Session Tracking:
- Tracks session boundaries, updating the visualization dynamically as the session progresses.
- Displays session-specific maximum and minimum values if enabled.
7. Additional Features:
- Configurable dividers for session or daily boundaries.
- Transparency and styling options for the displayed zones.
- A dashboard for advanced visualization and information overlay.
Key Code Sections Explained
1. Resolution Determination:
- Depending on the user's input (Auto, Multiplier, or Manual), the script determines the appropriate timeframe resolution for higher timeframe analysis.
- The resolution adapts dynamically based on intraday, daily, or higher-period charts.
2. Fetching Security Data:
- Using the `getSecurityDataFunction`, the script fetches high and low values for the chosen timeframe, including historical and real-time data management to avoid repainting issues.
3. Session High/Low Logic:
- By comparing the highest and lowest values over a lookback period, the script identifies whether the current value is a new session high or low, updating session boundaries and initiating visual indicators.
4. Visualization:
- The script creates visual representations using `box.new` for range zones and `label.new` for session labels.
- These elements update dynamically to reflect the most recent data.
5. Customization Options:
- Users can configure the appearance, behavior, and displayed data through multiple input options, ensuring adaptability to individual trading preferences.
This indicator is a robust tool for tracking higher timeframe activity, offering a blend of automation, customization, and visual clarity to enhance trading strategies.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Best regards and happy trading
Chervolino
supertrendLibrary "supertrend"
supertrend : Library dedicated to different variations of supertrend
supertrend_atr(length, multiplier, atrMaType, source, highSource, lowSource, waitForClose, delayed)
supertrend_atr: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
length (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
delayed (simple bool) : : if set to true lags supertrend atr stop based on target levels.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_bands(bandType, maType, length, multiplier, source, highSource, lowSource, waitForClose, useTrueRange, useAlternateSource, alternateSource, sticky)
supertrend_bands: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
bandType (simple string) : : Type of band used - can be bb, kc or dc
maType (simple string) : : Moving Average type for Bands. This can be sma, ema, hma, rma, wma, vwma, swma
length (simple int) : : Band Length
multiplier (float) : : Std deviation or ATR multiplier for Bollinger Bands and Keltner Channel
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
useTrueRange (simple bool) : : Used for Keltner channel. If set to false, then high-low is used as range instead of true range
useAlternateSource (simple bool) : - Custom source is used for Donchian Chanbel only if useAlternateSource is set to true
alternateSource (float) : - Custom source for Donchian channel
sticky (simple bool) : : if set to true borders change only when price is beyond borders.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_zigzag(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
supertrend_zigzag: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zupertrend(length, history, useAlternativeSource, alternativeSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType)
zupertrend: Zigzag pivot based supertrend
Parameters:
length (simple int) : : Zigzag Length
history (simple int) : : number of historical pivots to consider
useAlternativeSource (simple bool)
alternativeSource (float)
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
zsupertrend(zigzagpivots, history, source, highSource, lowSource, waitForClose, atrMaType, atrlength, multiplier)
zsupertrend: Same as zigzag supertrend. But, works on already calculated array rather than Calculating fresh zigzag
Parameters:
zigzagpivots (array) : : Precalculated zigzag pivots
history (simple int) : : number of historical pivots to consider
source (float) : : Default is close. Can Chose custom source
highSource (float) : : Default is high. Can also use close price for both high and low source
lowSource (float) : : Default is low. Can also use close price for both high and low source
waitForClose (simple bool) : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrMaType (simple string) : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
atrlength (simple int) : : ATR Length
multiplier (simple float) : : ATR Multiplier
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
UVR Crypto TrendINDICATOR OVERVIEW: UVR CRYPTO TREND
The UVR Crypto Trend indicator is a custom-built tool designed specifically for cryptocurrency markets, utilizing advanced volatility, momentum, and trend-following techniques. It aims to identify trend reversals and provide buy and sell signals by analyzing multiple factors, such as price volatility(UVR), RSI (Relative Strength Index), CMF (Chaikin Money Flow), and EMA (Exponential Moving Average). The indicator is optimized for CRYPTO MARKETS only.
KEY FEATURES AND HOW IT WORKS
Volatility Analysis with UVR
The UVR (Ultimate Volatility Rate) is a proprietary calculation that measures market volatility by comparing significant price extremes and smoothing the data over time.
Purpose: UVR aims to reduce noise in low-volatility environments and highlight significant movements during higher-volatility periods. While it strives to improve filtering in low-volatility conditions, it does not guarantee perfect performance, making it a balanced and adaptable tool for dynamic markets like cryptocurrency.
HOW UVR (ULTIMATE VOLATILITY RATE) IS CALCULATED
UVR is calculated using a method that ensures precise measurement of market volatility by comparing price extremes across consecutive candles:
Volatility Components:
Two values are calculated to represent potential price fluctuations:
The absolute difference between the current candle's high and the previous candle's low:
Volatility Component 1=∣High−Low ∣
The absolute difference between the previous candle's high and the current candle's low:
Volatility Component 2=∣High −Low∣
Volatility Ratio:
The larger of the two components is selected as the Volatility Ratio, ensuring UVR captures the most significant movement:
Volatility Ratio=max(Volatility Component 1,Volatility Component 2)
Smoothing with SMMA:
To stabilize the volatility calculation, the Volatility Ratio is smoothed using a Smoothed Moving Average (SMMA) over a user-defined period (e.g., 14 candles):
UVR=(UVR(Previous)×(Period−1)+Volatility Ratio)/Period
This calculation ensures UVR adapts dynamically to market conditions, focusing on significant price movements while filtering out noise.
RSI FOR MOMENTUM DETECTION
RSI (Relative Strength Index) identifies overbought and oversold conditions.
Trend Confirmation at the 50 Level
RSI values crossing above 50 signal the potential start of an upward trend.
RSI values crossing below 50 indicate the potential start of a downward trend.
Key Reversals at Extreme Levels
RSI detects trend reversals at overbought (>70) and oversold (<30) levels.
For example:
Overbought Trend Reversal: RSI >70 followed by bearish price action signals a potential downtrend.
Oversold Trend Reversal: RSI <30 with bullish confirmation signals a potential uptrend.
Rare Extreme RSI Readings
Extreme levels, such as RSI <12 (oversold) or RSI >88 (overbought), are used to identify rare yet powerful reversals.
---HOW IT DIFFERS FROM OTHER INDICATORS---
Using UVR High and Low Values
The Ultimate Volatility Rate (UVR) focuses on analyzing the high and low price ranges of the market to measure volatility.
Unlike traditional trend indicators that rely primarily on momentum or moving average crossovers, UVR leverages price extremes to better identify trend reversals.
This approach ensures fewer false signals during low-volatility phases and more accurate trend detection during high-volatility conditions.
UVR as the Core Component
The indicator is fundamentally built around UVR as the primary filter, while supporting tools like RSI (momentum detection), CMF (volume confirmation), and EMA (trend validation) complement its functionality.
By integrating these additional components, the indicator provides a multidimensional analysis rather than relying solely on a single approach.
Dynamic Adaptation to Volatility
UVR dynamically adjusts to market conditions, striving to improve filtering in low-volatility phases. While not flawless, this approach minimizes false signals and adapts more effectively to varying levels of market activity.
Trend Clouds for Visual Guidance
UVR-based dynamic clouds visually mark high and low price areas, highlighting potential consolidation or retracement zones.
These clouds serve as guides for setting stop-loss or take-profit levels, offering clear risk management strategies.
BUY AND SELL SIGNAL LOGIC
BUY CONDITIONS
Momentum-Based Buy-Entry
RSI >50, CMF >0, and the close price is above EMA50.
The price difference between open and close exceeds a threshold based on UVR.
Oversold Reversal
RSI <30 and CMF >0 with a strong bullish candle (close > open and UVR-based sensitivity filter).
Breakout Confirmation
The price breaks above a previously identified resistance, with conditions for RSI and CMF supporting the breakout.
Reversal from Oversold RSI Extreme
RSI <12 on the previous candle with a strong rebound on the current candle with UVR confirmation filter.
SELL CONDITIONS
Momentum-Based Sell-Entry
RSI <50, CMF <0, and the close price is below EMA50.
The price difference between open and close exceeds the UVR threshold.
Overbought Reversal
RSI >70 with bearish price action (open > close and UVR-based sensitivity filter).
Breakdown Confirmation
The price breaks below a previously identified support, with RSI and CMF supporting the breakdown.
Reversal from Overbought RSI Extreme
RSI >88 on the previous candle with a bearish confirmation on the current candle with UVR confirmation filter.
BUY AND SELL SIGNALS VISUALIZATION
The UVR Crypto Trend Indicator visually represents buy and sell conditions using dynamic plots, making it easier for traders to interpret and act on the signals. Below is an explanation of the visual representation:
Buy Signals and Visualization
Signal Trigger:
A buy signal is generated when one of the defined Buy Conditions is met (e.g., RSI >50, CMF >0, price above EMA50).
Visual Representation:
A blue upward arrow appears at the candle where the buy condition is triggered.
A blue cloud forms above the price candles, representing the strength of the bullish trend. The cloud dynamically adapts to market volatility, using the UVR calculation to mark support zones or consolidation levels.
Purpose of the Blue Cloud:
It acts as a visual guide for price movements and stay horizontal when the trend is not moving up
Sell Signals and Visualization
Signal Trigger:
A sell signal is generated when one of the defined Sell Conditions is met (e.g., RSI <50, CMF <0, price below EMA50).
Visual Representation:
A red downward arrow appears at the candle where the sell condition is triggered.
A red cloud forms below the price candles, representing the strength of the bearish trend. Like the blue cloud, it uses the UVR calculation to dynamically mark resistance zones or potential retracement levels.
Purpose of the Red Cloud:
It acts as a visual guide for price movements and stay horizontal when the trend is not moving down.
CONCLUSION
The UVR Crypto Trend indicator provides a powerful tool for trend reversal detection by combining volatility analysis, momentum confirmation, and trend-following techniques. Its unique use of the Ultimate Volatility Rate (UVR) as a core element, supported by proven indicators like RSI, CMF, and EMA, ensures reliable and actionable signals tailored for the crypto market's dynamic nature. By leveraging UVR’s high and low price range analysis, it achieves a level of precision that traditional indicators lack, making it a high-performing system for cryptocurrency traders.
Trading Sessions with Highs and LowsTrading Sessions with Highs and Lows is designed to visually highlight specific trading sessions on the chart, providing traders with key insights into market behavior during these time periods. Here’s a detailed explanation of how the indicator works:
Key Features
1. Session Boxes:
• The indicator plots colored boxes on the chart to represent the price range of defined trading sessions.
• Each box spans the session’s start and end times and encapsulates the high and low prices during that period.
• Two trading sessions are defined by default:
• USA Trading Session: 9:30 AM - 4:00 PM (New York Time).
• UK Trading Session: 8:00 AM - 4:30 PM (London Time).
2. Session Labels:
• The name of the session (e.g., “USA” or “UK”) is displayed above the session box for clear identification.
3. High and Low Markers:
• Markers are added to the chart at the session’s high and low points:
• High Marker: A green label indicating the session high.
• Low Marker: A red label indicating the session low.
4. Dynamic Reset:
• After the session ends, the session high and low values are reset to na to prepare for the next trading day.
5. Customizable Background Colors:
• Each session’s box has a distinct, semi-transparent background color for better visual separation.
How It Works
1. Core Functionality:
• A function, plot_box, takes the session name, start time, end time, and background color as input.
• It calculates whether the current time is within the session.
• During the session:
• It tracks the session’s highest and lowest prices.
• It identifies the bars where the high and low occurred.
• At the session’s end:
• It plots a box on the chart covering the session’s time and price range.
• Labels are created for the session name and its high/low points.
2. Session Timing:
• Timestamps for the USA and UK trading sessions are calculated using the timestamp function with respective time zones.
3. Visual Elements:
• The box.new function draws the session boxes on the chart.
• The label.new function creates session name and high/low labels.
Usage
• Overlay Mode: The indicator is applied directly on the price chart (overlay=true), making it easy to visualize session-specific price behavior.
• Trading Strategy:
• Identify session-specific support and resistance levels.
• Observe price action trends during key trading periods.
• Align trading decisions with session dynamics.
Customization
While the indicator is preset for the USA and UK trading sessions, it can be easily modified:
1. Add/Remove Sessions: Define additional sessions by providing their start and end times.
2. Change Colors: Update the background_color in the plot_box calls to use different colors for sessions.
3. Adjust Time Zones: Replace the current time zones with others relevant to your trading style.
Visualization Example
• USA Session:
• Time: 9:30 AM - 4:00 PM (New York Time).
• Box Color: Semi-transparent orange.
• UK Session:
• Time: 8:00 AM - 4:30 PM (London Time).
• Box Color: Semi-transparent green.
Why Use This Indicator?
1. Market Awareness: Easily spot price behavior during high-liquidity trading periods.
2. Trend Analysis: Analyze how sessions overlap or affect each other.
3. Session Boundaries: Use session high/low levels as dynamic support and resistance zones.
This indicator is an essential tool for intraday and swing traders who want to align their strategies with key market timings.
Mxwll Price Action Suite [Mxwll]Introducing the Mxwll Price Action Suite!
The Mxwll Price Action Suite is an all-in-one analysis indicator incorporating elements of SMC and also ideas extending beyond the trading methodology!
Features
Internal structures
External structures
Customizable Sensitivities
BoS/CHoCH
Order Blocks
HH/LH/LL/LH Areas
Rolling TF highs/lows
Rolling Volume Comparisons
Auto Fibs
And more!
The image above shows the indicator's market structure identification capabilities. Internal BoS and CHoCH structures in addition to overarching market structures are available with customizable sensitivities.
The image above shows the indicator identifying order blocks! Additionally, HH/LH/LL/LH areas are also identified.
The image above shows a rolling area of interest. These areas can be compared to supply/demand zones, where traders might consider a bargain long/short/sell area.
The indicator displays a rolling 4hr high/low and 1D high/low, alongside auto fibonacci levels with a customizable sensitivity.
Finally, the Mxwll Price Action Suite shows relevant session information.
Table information
Current Session
Countdown to session close
Next Session
Countdown to next session open
Rolling 4-Hr volume intensity
Rolling 24-Hr volume intensity
Introducing the Mxwll SMC Suite!
The Mxwll SMC Suite is an all-in-one analysis indicator incorporating elements of SMC and also ideas extending beyond the trading methodology!
Features
Internal structures
External structures
Customizable Sensitivities
BoS/CHoCH
Order Blocks
HH/LH/LL/LH Areas
Rolling TF highs/lows
Rolling Volume Comparisons
Auto Fibs
And more!
The image above shows the indicator's market structure identification capabilities. Internal BoS and CHoCH structures in addition to overarching market structures are available with customizable sensitivities.
The image above shows the indicator identifying order blocks! Additionally, HH/LH/LL/LH areas are also identified.
The image above shows a rolling area of interest. These areas can be compared to supply/demand zones, where traders might consider a bargain long/short/sell area.
The indicator displays a rolling 4hr high/low and 1D high/low, alongside auto fibonacci levels with a customizable sensitivity.
Finally, the Mxwll Price Action Suite shows relevant session information.
Table information
Current Session
Countdown to session close
Next Session
Countdown to next session open
Rolling 4-Hr volume intensity
Rolling 24-Hr volume intensity
Expanded Features of Mxwll Price Action Suite
Internal and External Structures
Internal Structures: These elements refer to the price formations and patterns that occur within a smaller scope or a specific trading session. The suite can detect intricate details like minor support/resistance levels or short-term trend reversals.
External Structures: These involve larger, more significant market patterns and trends spanning multiple sessions or time frames. This capability helps traders understand overarching market directions.
Customizable Sensitivities
Adjusting sensitivity settings allows users to tailor the indicator's responsiveness to market changes. Higher sensitivity can catch smaller fluctuations, while lower sensitivity might focus on more significant, reliable market moves.
Break of Structure (BoS) and Change of Character (CHoCH)
BoS: This feature identifies points where the price breaks a significant structure, potentially indicating a new trend or a trend reversal.
CHoCH: Detects subtle shifts in the market's behavior, which could suggest the early stages of a trend change before they become apparent to the broader market.
Order Blocks and Market Phases
Order Blocks: These are essentially price levels or zones where significant trading activities previously occurred, likely pointing to the positions of smart money.
HH/LH/LL/LH Areas: Identifying Higher Highs (HH), Lower Highs (LH), Lower Lows (LL), and Lower Highs (LH) helps in understanding the trend and market structure, aiding in predictive analysis.
Rolling Timeframe Highs/Lows and Volume Comparisons
Tracks highs and lows over specified rolling periods, providing dynamic support and resistance levels.
Compares volume data across different timeframes to assess the strength or weakness of the current price movements.
Auto Fibonacci Levels
Automatically calculates and plots Fibonacci retracement levels, a popular tool among traders to identify potential reversal points based on past movements.
Session Data and Volume Intensity
Session Information: Displays current and upcoming trading sessions along with countdown timers, which is crucial for day traders and those trading on session overlaps.
Volume Intensity: Measures and compares the volume within the last 4 hours and 24 hours to gauge market activity and potential breakout/breakdown movements.
Visualizations and Practical Use
Dynamic Visuals: The suite provides dynamic visual aids, such as real-time updating of high/low markers and Fibonacci levels, which adjust as new data comes in. This feature is critical in fast-paced markets.
Strategic Entry/Exit Points: By identifying order blocks and using Fibonacci levels, traders can pinpoint strategic entry and exit points, maximizing potential returns.
Risk Management: Enhanced features like session countdowns and volume intensity help in better risk management by providing traders with more data on market sentiment and potential volatility.
Fib Pivot Points HLThis TradingView indicator allows users to select a specific timeframe (TF) and then analyzes the high, low, and closing prices from the past period within that TF to calculate a central pivot point. The pivot point is determined using the formula (High + Close + Low) / 3, providing a key level around which the market is expected to pivot or change direction.
In addition to the central pivot point, the indicator enhances its utility by incorporating Fibonacci levels. These levels are calculated based on the range from the low to the high of the selected timeframe. For instance, a Fibonacci level like R0.38 would be calculated by adding 38% of the high-low range to the pivot point, giving traders potential resistance levels above the pivot.
Key features of this indicator include:
Timeframe Selection: Users can choose their desired timeframe, such as weekly, daily, etc., for analysis.
Pivot Point Calculation: The indicator calculates the pivot point based on the previous period's high, low, and closing prices within the selected timeframe.
Fibonacci Levels: Adds Fibonacci retracement levels to the pivot point, offering traders additional layers of potential support and resistance based on the natural Fibonacci sequence.
This indicator is particularly useful for traders looking to identify potential turning points in the market and key levels of support and resistance based on historical price action and the Fibonacci sequence, which is widely regarded for its ability to predict market movements.
Example:
Suppose you're analyzing the EUR/USD currency pair using this indicator with a weekly timeframe setting. The previous week's price action showed a high of 1.2100, a low of 1.1900, and the week closed at 1.2000.
Using the formula ( High + Close + Low ) / 3 (High+Close+Low)/3, the pivot point would be calculated as ( 1.2100 + 1.2000 + 1.1900 ) / 3 = 1.2000. Thus, the central pivot point for the current week is at 1.2000.
The range from the low to the high is 1.2100 − 1.1900 = 0.0200 1.2100−1.1900=0.0200.
To calculate a specific Fibonacci level, such as R0.38, you would add 38% of the high-low range to the pivot point: 1.2000 + ( 0.0200 ∗ 0.38 ) = 1.2076 1.2000+(0.0200∗0.38)=1.2076. Thus, the R0.38 Fibonacci resistance level is at 1.2076.
Similarly, you can calculate other Fibonacci levels such as S0.38 (Support level at 38% retracement) by subtracting 38% of the high-low range from the pivot point.
Traders can use the pivot point as a reference for the market's directional bias: prices above the pivot point suggest bullish sentiment, while prices below indicate bearish sentiment. The Fibonacci levels act as potential stepping stones for price movements, offering strategic points for entry, exit, or placing stop-loss orders.
[KVA] Kamvia Directional MovementKamvia Directional Movement (KDM) Indicator is an analytical tool designed to identify potential buying and selling opportunities in the market. It highlights the phases of price depletion which typically align with price highs and lows, offering a nuanced understanding of market dynamics.
Efficient at pinpointing trend breakdowns and excelling in the identification of intra-day entry and exit points, the Kamvia Directional Movement Indicator is a valuable asset for traders aiming to optimize their market strategies.
The KDM not only takes into account the traditional high and low price points within its analysis but also introduces an innovative approach by incorporating the concepts of body high and body low. This nuanced analysis offers a deeper insight into market momentum and potential shifts in market dynamics.
High and Low Analysis : The indicator examines the price highs and lows to gauge the overall market volatility and potential turning points. By analyzing these extremities, traders can get a sense of market strength and possible shifts in trend direction. The high points indicate periods of maximum buying interest, potentially signaling overbought conditions, while the low points reflect selling interest, hinting at oversold conditions.
Body High and Body Low Analysis : Unique to the KDM Indicator is the emphasis on the body of the candlestick, which is the range between the open and close prices. This analysis offers a more refined view of market sentiment by focusing on the actual trading range experienced within the period. The body high (the upper end of the candlestick body) and body low (the lower end of the candlestick body) provide insights into the buying and selling pressure during the trading session, beyond mere price extremities.
The indicator is calibrated on a scale from 0 to 100, making interpretation intuitive and straightforward. A reading above 70 is considered to be in the overbought region, suggesting that the market might be experiencing a heightened level of buying activity that could lead to a potential pullback or reversal. Conversely, a reading below 30 falls into the oversold region, indicating a possible exhaustion in selling pressure and a potential for market reversal or bounce back.
This scale and the detailed analysis of both price and body dynamics equip traders with a comprehensive tool for assessing market conditions. The distinction between high/low and body high/body low analysis enriches the indicator's capability to provide more targeted insights into market behavior, enabling traders to make more nuanced decisions based on a broader spectrum of information. By identifying the duration and extent to which these conditions persist, traders can better interpret the market's momentum and align their strategies with the prevailing trend or prepare for an impending reversal.
KDM Strategy
The strategy focuses on spotting price reversals within a confirmed trend. While the indicator features regions indicating overbought and oversold conditions, these signals alone are not sufficient predictors of a market reversal.
The terms "overbought" and "oversold" describe scenarios where prices reach levels that are unusually high or low within a specified look-back period. Entering these zones often indicates a continuation of the trend rather than a reversal.
A "strongly overbought" condition signals buying pressure, whereas a "strongly oversold" condition indicates selling pressure. The key to leveraging these conditions lies in analyzing the duration for which the market remains in either state. This duration can provide critical insights into whether the market is trending or ranging.
Extended periods in extreme overbought territories confirm an uptrend, while prolonged presence in slight overbought zones (above 50 but below 70, for example) suggests a more moderate uptrend. Conventionally, levels above 70 signal extreme overbought conditions, and those below 30 indicate extreme oversold conditions.
Traders are advised to exercise caution when the oscillator stays within these extreme areas. Ideally, the strategy involves capitalizing on temporary price drops within an overall uptrend or on temporary price spikes within an overall downtrend.
Identifying trading opportunities with the KDM Indicator involves looking for the indicator to exit these extreme overbought or oversold regions, signaling potential reversals or continuations in the market's direction. This approach helps traders make informed decisions by considering the broader market trend alongside short-term price movements.
Fake BreakoutThis indicator detect fake breakout on previous day high/low and option previous swing high and low
Rule Detect Fake Breakout On Previous Day High/Low Or Swing high low Fake Breakout -
1) Detect previous day high/low or swing high/low
2)
A) If price revisit on previous day high/swing high look for upside breakout after input
number of candle (1-5) price came back to previous high and breakout happen downside
it show sell because its fake breakout of previous day high or swing high
B) If price revisit on previous day low/swing low look for downside breakout after input
number of candle (1-5) price came back to previous low and breakout upside of previous
day low it show Buy because its fake breakout of previous day low or swing low
Disclaimer -Traders can use this script as a starting point for further customization or as a reference for developing their own trading strategies. It's important to note that past performance is not indicative of future results, and thorough testing and validation are recommended before deploying any trading strategy.
libHTF[without request.security()]Library "libHTF"
libHTF: use HTF values without request.security()
This library enables to use HTF candles without request.security().
Basic data structure
Using to access values in the same manner as series variable.
The last member of HTF array is always latest current TF's data.
If new bar in HTF(same as last bar closes), new member is pushed to HTF array.
2nd from the last member of HTF array is latest fixed(closed) bar.
HTF: How to use
1. set TF
tf_higher() function selects higher TF. TF steps are ("1","5","15","60","240","D","W","M","3M","6M","Y").
example:
tfChart = timeframe.period
htf1 = tf_higher(tfChart)
2. set HTF matrix
htf_candle() function returns 1 bool and 1 matrix.
bool is a flag for start of new candle in HTF context.
matrix is HTF candle data(0:open,1:time_open,2:close,3:time_close,4:high,5:time:high,6:low,7:time_low).
example:
=htf_candle(htf1)
3. how to access HTF candle data
you can get values using .lastx() method.
please be careful, return value is always float evenif it is "time". you need to cast to int time value when using for xloc.bartime.
example:
htf1open=m1.lastx("open")
htf1close=m1.lastx("close")
//if you need to use histrical value.
lastopen=open
lasthtf1open=m1.lastx("open",1)
4. how to store Data of HTF context
you have to use array to store data of HTF context.
array.htf_push() method handles the last member of array. if new_bar in HTF, it push new member. otherwise it set value to the last member.
example:
array a_close=array.new(1,na)
a_close.htf_push(b_new_bar1,m1.lastx("close"))
HTFsrc: How to use
1. how to setup src.
set_src() function is set current tf's src from string(open/high/low/close/hl2/hlc3/ohlc4/hlcc4).
set_htfsrc() function returns src array of HTF candle.
example:
_src="ohlc4"
src=set_src(_src)
htf1src=set_htfsrc(_src,b_new_bar1,m1)
(if you need to use HTF src in series float)
s_htf1src=htf1src.lastx()
HighLow: How to use
1. set HTF arrays
highlow() and htfhighlow() function calculates high/low and return high/low prices and time.
the functions return 1 int and 8arrays.
int is a flag for new high(1) or new low(-1).
arrays are high/low and return high/low data. float for price, int for time.
example
=
highlow()
=
htfhighlow(m1)
2. how to access HighLow data
you can get values using .lastx() method.
example:
if i_renew==1
myhigh=a_high.lastx()
//if you need to use histrical value.
myhigh=a_high.lastx(1)
other functions
functions for HTF candle matrix or HTF src array in this script are
htf_sma()/htf_ema()/htf_rma()
htf_rsi()/htf_rci()/htf_dmi()
method lastx(arrayid, lastindex)
method like array.last. it returns lastindex from the last member, if parameter is set.
Namespace types: float
Parameters:
arrayid (float )
lastindex (int) : (int) default value is "0"(the last member). if you need to access historical value, increment it(same manner as series vars).
Returns: float value of lastindex from the last member of the array. returns na, if fail.
method lastx(arrayid, lastindex)
method like array.last. it returns lastindex from the last member, if parameter is set.
Namespace types: int
Parameters:
arrayid (int )
lastindex (int) : (int) default value is "0"(the last member). if you need to access historical value, increment it(same manner as series vars).
Returns: int value of lastindex from the last member of the array. returns na, if fail.
method lastx(m, _type, lastindex)
method for handling htf matrix.
Namespace types: matrix
Parameters:
m (matrix) : (matrix) matrix for htf candle.
_type (string) : (string) value type of htf candle:
lastindex (int) : (int) default value is "0"(the last member).
Returns: (float) value of htf candle. (caution: need to cast float to int to use time values!)
method set_last(arrayid, val)
method to set a value of the last member of the array. it sets value to the last member.
Namespace types: float
Parameters:
arrayid (float )
val (float) : (float) value to set.
Returns: nothing
method htf_push(arrayid, b, val)
method to push new member to htf context. if new bar in htf, it works as push. else it works as set_last.
Namespace types: float
Parameters:
arrayid (float )
b (bool) : (bool) true:push,false:set_last
val (float) : (float) _f the value to set.
Returns: nothing
method tf_higher(tf)
method to set higher tf from tf string. TF steps are .
Namespace types: series string, simple string, input string, const string
Parameters:
tf (string) : (string) tf string
Returns: (string) string of higher tf.
htf_candle(_tf, _TZ)
build htf candles
Parameters:
_tf (string) : (string) tf string.
_TZ (string) : of timezone. default value is "GMT+3".
Returns: bool for new bar@htf and matrix for snapshot of htf candle
set_src(_src_type)
set src.
Parameters:
_src_type (string) : (string) type of source:
Returns: (series float) src value
set_htfsrc(_src_type, _nb, _m)
set htf src.
Parameters:
_src_type (string) : (string) type of source:
_nb (bool) : (bool) flag of new bar
_m (matrix) : (matrix) matrix for htf candle.
Returns: (array) array of src value
is_up()
last_is_up()
peak_bottom(_latest, _last)
Parameters:
_latest (bool)
_last (bool)
htf_is_up(_m)
Parameters:
_m (matrix)
htf_last_is_up(_m)
Parameters:
_m (matrix)
highlow(_b_bartime_price)
Parameters:
_b_bartime_price (bool)
htfhighlow(_m, _b_bartime_price)
Parameters:
_m (matrix)
_b_bartime_price (bool)
htf_sma(_a_src, _len)
Parameters:
_a_src (float )
_len (int)
htf_rma(_a_src, _new_bar, _len)
Parameters:
_a_src (float )
_new_bar (bool)
_len (int)
htf_ema(_a_src, _new_bar, _len)
Parameters:
_a_src (float )
_new_bar (bool)
_len (int)
htf_rsi(_a_src, _new_bar, _len)
Parameters:
_a_src (float )
_new_bar (bool)
_len (int)
rci(_src, _len)
Parameters:
_src (float)
_len (int)
htf_rci(_a_src, _len)
Parameters:
_a_src (float )
_len (int)
htf_dmi(_m, _new_bar, _len, _ma_type)
Parameters:
_m (matrix)
_new_bar (bool)
_len (int)
_ma_type (string)
4H RangeThis script visualizes certain key values based on a 4-hour timeframe of the selected market on the chart. These values include the High, Mid, and Low price levels during each 4-hour period.
These levels can be helpful to identify inside range price action, chop, and consolidation. They can sometimes act as pivots and can be a great reference for potential entries and exits if price continues to hold the same range.
Here's a step-by-step overview of what this indicator does:
1. Inputs: At the beginning of the script, users are allowed to customize some inputs:
Choose the color of lines and labels.
Decide whether to show labels on the chart.
Choose the size of labels ("tiny", "small", "normal", or "large").
Choose whether to display price values in labels.
Set the number of bars to offset the labels to the right.
Set a threshold for the number of ticks that triggers a new calculation of high, mid, and low values.
* Tick settings may need to be increased on equity charts as one tick is usually equal to one cent.
For example, if you want to clear the range when there is a close one point/one dollar above or below the range high/low then on ES
that would be 4 ticks but one whole point on AAPL would be 100 ticks. 100 ticks on an equity chart may or may not be ideal due to
different % change of 100 ticks might be too excessive depending on the price per share.
So be aware that user preferred thresholds can vary greatly depending on which chart you're using.
2. Retrieving Price Data: The script retrieves the high, low, and closing price for every 4-hour period for the current market.
The script also calculates the mid-price of each 4-hour period (the average of the high and low prices).
3. Line Drawing: At the start of the script (first run), it draws three lines (high, mid, and low) at the levels corresponding to the high,
mid, and low prices. Users can also change transparency settings on historical lines to view them. Default setting for historical lines
is for them to be hidden.
4. Updating Lines and Labels: For each subsequent 4-hour period, the script checks whether the close price of the period has gone
beyond a certain threshold (set by user input) above the previous high or below the previous low. If it has, the script deletes the
previous lines and labels, draws new lines at the new high, mid, and low levels, and creates new labels (if the user has opted to
show labels).
5. Displaying Values in the Data Window: In addition to the visual representation on the chart, the script also plots the high, mid, and
low prices. These plotted values appear in the Data Window of TradingView, allowing users to see the exact price levels even when
they're not directly labeled on the chart.
6. Updating Lines and Labels Position: At the end of each period, the script moves the lines and labels (if they're shown) to the right,
keeping them aligned with the current period.
Please note: This script operates based on a 4-hour timeframe, regardless of the timeframe selected on the chart. If a shorter timeframe is selected on the chart, the lines and labels will appear to extend across multiple bars because they represent 4-hour price levels. If a longer timeframe is selected, the lines and labels may not accurately represent high, mid, and low levels within that longer timeframe.
DB Support Resistance Levels + Smart Higher Highs and Lower LowsDB Support Resistance Levels + Smart Higher Highs and Lower Lows
The indicator plots historic lines for high, low and close prices shown in settings as "base levels". Users can control the lookback period that is plotted along with an optional multiplier. Traders will notice that the price bounces off these historic base levels. The base levels are shown as light gray by default (customizable in the settings). Users may choose to display base levels by a combination of historic high, low and close values.
On top of the historic base levels, the indicator display higher high and lower low levels from the current bar high/low. Higher highs are shown by default in pink and lower lows by default in yellow. The user can adjust the lookback period for displaying higher highs and the optional multiplier. Only historic values higher than the current bar high are displayed filtering out (by highlighting) the remaining levels for the current bar. Users may choose to use a combination of historic open, low and close values for displaying higher highs. The user can adjust the lookback period for displaying lower lows and the optional multiplier. Only historic values lower than the current bar low are displayed filtering out (by highlighting) the remaining levels for the current bar. Users may choose to use a combination of historic open, low and close values for displaying lower low.
The indicator includes two optional filters for filtering out higher highs and lower lows to focus (highlight) the most relevant levels. The filters include KC and a simple price multiplier filter. The latter is enabled by default and recommended.
The indicator aims to provide two things; first a simple plot of historic base levels and second as the price moves to highlight the most relevant levels for the current price action. While the indicator works on all timeframes, it was tested with the weekly. Please keep in mind adjusting the timeframe may require the lookback settings to be adjusted to ensure the bars are within range.
How should I use this indicator?
Traders may use this indicator to gain a visual reference of support and resistance levels from higher periods of time with the most likely levels highlighted in pink and yellow. Replaying the indicator gives a visual show of levels in action and just how very often price action bounces from these highlighted levels.
Additional Notes
This indicator does increase the max total lines allowed which may impact performance depending on device specs. No alerts or signals for now. Perhaps coming soon...
Ticker Correlation Reference IndicatorHello,
I am super excited to be releasing this Ticker Correlation assessment indicator. This is a big one so let us get right into it!
Inspiration:
The inspiration for this indicator came from a similar indicator by Balipour called the Correlation with P-Value and Confidence Interval. It’s a great indicator, you should check it out!
I used it quite a lot when looking for correlations; however, there were some limitations to this indicator’s functionality that I wanted. So I decided to make my own indicator that had the functionality I wanted. I have been using this for some time but decided to actual spruce it up a bit and make it user friendly so that I could share it publically. So let me get into what this indicator does and, most importantly, the expanded functionality of this indicator.
What it does:
This indicator determines the correlation between 2 separate tickers. The user selects the two tickers they wish to compare and it performs a correlation assessment over a defaulted 14 period length and displays the results. However, the indicator takes this much further. The complete functionality of this indicator includes the following:
1. Assesses the correlation of all 4 ticker variables (Open, High, Low and Close) over a user defined period of time (defaulted to 14);
2. Converts both tickers to a Z-Score in order to standardize the data and provide a side by side comparison;
3. Displays areas of high and low correlation between all 4 variables;
4. Looks back over the consistency of the relationship (is correlation consistent among the two tickers or infrequent?);
5. Displays the variance in the correlation (there may be a statistically significant relationship, but if there is a high variance, it means the relationship is unstable);
6. Permits manual conversion between prices; and
7. Determines the degree of statistical significance (be it stable, unstable or non-existent).
I will discuss each of these functions below.
Function 1: Assesses the correlation of all 4 variables.
The only other indicator that does this only determines the correlation of the close price. However, correlation between all 4 variables varies. The correlation between open prices, high prices, low prices and close prices varies in statistically significant ways. As such, this indicator plots the correlation of all 4 ticker variables and displays each correlation.
Assessing this matters because sometimes a stock may not have the same magnitude in highs and lows as another stock (one stock may be more bullish, i.e. attain higher highs in comparison to another stock). Close price is helpful but does not pain the full picture. As such, the indicator displays the correlation relationship between all 4 variables (image below):
Function 2: Converts both tickers to Z-Score
Z-Score is a way of standardizing data. It simply measures how far a stock is trading in relation to its mean. As such, it is a way to express both tickers on a level playing field. Z-Score was also chosen because the Z-Score Values (0 – 4) also provide an appropriate scale to plot correlation lines (which range from 0 to 1).
The primary ticker (Ticker 1) is plotted in blue, the secondary comparison ticker (Ticker 2) is plotted in a colour changing format (which will be discussed below). See the image below:
Function 3: Displays areas of high and low correlation
While Ticker 1 is plotted in a static blue, Ticker 2 (the comparison ticker) is plotted in a dynamic, colour changing format. It will display areas of high correlation (i.e. areas with a P value greater than or equal to 0.9 or less than and equal to -0.9) in green, areas of moderate correlation in white. Areas of low correlation (between 0.4 and 0 or -0.4 and 0) are in red. (see image below):
Function 4: Checks consistency of relationship
While at the time of assessing a stock there very well maybe a high correlation, whether that correlation is consistent or not is the question. The indicator employs the use of the SMA function to plot the average correlation over a defined period of time. If the correlation is consistently high, the SMA should be within an area of statistical significance (over 0.5 or under -0.5). If the relationship is inconsistent, the SMA will read a lower value than the actual correlation.
You can see an example of this when you compare ETH to Tezos in the image below:
You can see that the correlation between ETH and Tezo’s on the high level seems to be inconsistent. While the current correlation is significant, the SMA is showing that the average correlation between the highs is actually less than 0.5.
The indicator also tells the user narratively the degree of consistency in the statistical relationship. This will be discussed later.
Function 5: Displays the variance
When it comes to correlation, variance is important. Variance simply means the distance between the highest and lowest value. The indicator assess the variance. A high degree of variance (i.e. a number surpassing 0.5 or greater) generally means the consistency and stability of the relationship is in issue. If there is a high variance, it means that the two tickers, while seemingly significantly correlated, tend to deviate from each other quite extensively.
The indicator will tell the user the variance in the narrative bar at the bottom of the chart (see image below):
Function 6: Permits manual conversion of price
One thing that I frequently want and like to do is convert prices between tickers. If I am looking at SPX and I want to calculate a price on SPY, I want to be able to do that quickly. This indicator permits you to do that by employing a regression based formula to convert Ticker 1 to Ticker 2.
The user can actually input which variable they would like to convert, whether they want to convert Ticker 1 Close to Ticker 2 Close, or Ticker 1 High to Ticker 2 High, or low or open.
To do this, open the settings and click “Permit Manual Conversion”. This will then take the current Ticker 1 Close price and convert it to Ticker 2 based on the regression calculations.
If you want to know what a specific price on Ticker 1 is on Ticker 2, simply click the “Allow Manual Price Input” variable and type in the price of Ticker 1 you want to know on Ticker 2. It will perform the calculation for you and will also list the standard error of the calculation.
Below is an example of calculating a SPY price using SPX data:
Above, the indicator was asked to convert an SPX price of 4,100 to a SPY price. The result was 408.83 with a standard error of 4.31, meaning we can expect 4,100 to fall within 408.83 +/- 4.31 on SPY.
Function 7: Determines the degree of statistical significance
The indicator will provide the user with a narrative output of the degree of statistical significance. The indicator looks beyond simply what the correlation is at the time of the assessment. It uses the SMA and the highest and lowest function to make an assessment of the stability of the statistical relationship and then indicates this to the user. Below is an example of IWM compared to SPY:
You will see, the indicator indicates that, while there is a statistically significant positive relationship, the relationship is somewhat unstable and inconsistent. Not only does it tell you this, but it indicates the degree of inconsistencies by listing the variance and the range of the inconsistencies.
And below is SPY to DIA:
SPY to BTCUSD:
And finally SPY to USDCAD Currency:
Other functions:
The indicator will also plot the raw or smoothed correlation result for the Open, High, Low or Close price. The default is to close price and smoothed. Smoothed just means it is displaying the SMA over the raw correlation score. Unsmoothing it will show you the raw correlation score.
The user also has the ability to toggle on and off the correlation table and the narrative table so that they can just review the chart (the side by side comparison of the 2 tickers).
Customizability
All of the functions are customizable for the most part. The user can determine the length of lookback, etc. The default parameters for all are 14. The only thing not customizable is the assessment used for determining the stability of a statistical relationship (set at 100 candle lookback) and the regression analysis used to convert price (10 candle lookback).
User Notes and important application tips:
#1: If using the manual calculation function to convert price, it is recommended to use this on the hourly or daily chart.
#2: Leaving pre-market data on can cause some errors. It is recommended to use the indicator with regular market hours enabled and extended market hours disabled.
#3: No ticker is off limits. You can compare anything against anything! Have fun with it and experiment!
Non-Indicator Specific Discussions:
Why does correlation between stocks mater?
This can matter for a number of reasons. For investors, it is good to diversify your portfolio and have a good array of stocks that operate somewhat independently of each other. This will allow you to see how your investments compare to each other and the degree of the relationship.
Another function may be getting exposure to more expensive tickers. I am guilty of trading IWM to gain exposure to SPY at a reduced cost basis :-).
What is a statistically significant correlation?
The rule of thumb is anything 0.5 or greater is considered statistically significant. The ideal setup is 0.9 or more as the effect is almost identical. That said, a lot of factors play into statistical significance. For example, the consistency and variance are 2 important factors most do not consider when ascertaining significance. Perhaps IWM and SPY are significantly correlated today, but is that a reliable relationship and can that be counted on as a rule?
These are things that should be considered when trading one ticker against another and these are things that I have attempted to address with this indicator!
Final notes:
I know I usually do tutorial videos. I have not done one here, but I will. Check back later for this.
I hope you enjoy the indicator and please feel free to share your thoughts and suggestions!
Safe trades all!
The Strat [LuxAlgo]The Strat indicator is a full toolkit regarding most of the concepts within "The Strat" methodology with features such as candle numbering, pivot machine gun (PMG) highlighting, custom combo highlighting, and various statistics included.
Alerts are also included for the detection of specific candle numbers, custom combos, and PMGs.
🔶 SETTINGS
Show Numbers on Chart: Shows candle numbering on the chart.
Style Candles: Style candles based on the detected number. Only effective on non-line charts and if the script is brought to the front.
🔹 Custom Combo Search
Combo: User defined combo to be searched by the script. Combos can be composed of any series of numbers including (1, 2, -2, 3), e.g : 2-21. No spaces or other characters should be used.
🔹 Pivot Machine Gun
Show Labels: Highlight detected PMGs with a label.
Min Sequence Length: Minimum sequence length of consecutive higher lows/lower highs required to detect a PMG.
Min Breaks: Minimum amount of broken previous highs/lows required to detect a PMG.
Show Levels: Show levels of the broken highs/lows.
🔹 Pivot Combos
Pivot Lookback: Lookback period used for detecting pivot points.
Right Bars Scan: Number of bars scanned to the right side of a detected pivot.
Left Bars Scan: Number of bars scanned to the left side of a detected pivot.
🔹 Dashboard
Show Dashboard: Displays statistics dashboard on chart.
Numbers Counter: Displays the numbers counter section on the dashboard.
Pivot Combos: Displays pivots combo section on the dashboard.
%: Display the percentage of detected pivot combos on the dashboard instead of absolute numbers.
Pivot Combos Rows: Number of rows displayed by the "Pivots Combo" dashboard section.
Show MTF: Showa MTF candle numbering on the dashboard.
Location: Location of the dashboard on the chart.
Size: Size of the displayed dashboard.
🔶 USAGE
This script allows users with an understanding of The Strat to quickly highlight elements such as candle numbers, pivot machine guns, and custom combos. The usage for these concepts is given in the sub-sections below.
🔹 Candle Numbers
The Strat assigns a number to individual candles, this number is determined by the current candle position relative to the precedent candle, these include:
Number 1 - Inside bar, occurs when the previous candle range engulfs the current one.
Number 2 Up - Upside Directional Bar, occurs when the current price high breaks the previous high while the current low is lower than the previous high.
Number 2 Down - Downside Directional Bar, occurs when the current price low breaks the previous low while the current high is higher than the previous low.
Number 3 - Outside bar, occurs when the current candle range engulfs the previous one.
The script can highlight the number of a candle by using labels but can also style candles by depending on the candle number. Inside bars (1) only have their candle wick highlighted, directional bars (2) (-2) only have their candle body highlighted. Outside bars have their candle range highlighted.
Note that downside directional bars are highlighted with the number -2.
Users can see the total amount of times a specific candle number is detected on the historical data on the dashboard available within the settings, as well as the number of times a candle number is detected relative to the total amount of detected candle numbers expressed as a percentage.
It is also possible to see the current candle numbers returned by multiple timeframes on the dashboard.
🔹 Searching For Custom Combos
Combos are made of a sequence of two or more candle numbers. These combos can highlight multiple reversals/continuation scenarios. Various common combos are documented by The Strat community.
This script allows users to search for custom combos by entering them on the Combo user setting field.
When a user combo is found, it is highlighted on the chart as a box highlighting the combo range.
🔹 Pivot Combos
It can be of interest to a user to display the combo associated with a pivot high/low. This script will highlight the location of pivot points on the chart and display its associated combo by default. These are based on the Pivot Combo lookback and not displayed in real-time.
Users can see on the dashboard the combos associated with a pivot high/low, these are ranked by frequency.
🔹 Pivot Machine Gun (PMG)
Pivot Machine Guns (PMG)s describe the scenario where a single price variation breaks the value of multiple past successive higher lows/lower highs. This can highlight a self-exciting behavior, where even more past successive higher lows/lower highs get broken.
Users can select the minimum sequence length of successive higher lows/lower highs required for a PMG to be detected, as well the amount of these successive higher lows/lower highs that must be broken.
VisibleChart█ OVERVIEW
This library is a Pine programmer’s tool containing functions that return values calculated from the range of visible bars on the chart.
This is now possible in Pine Script™ thanks to the recently-released chart.left_visible_bar_time and chart.right_visible_bar_time built-ins, which return the opening time of the leftmost and rightmost bars on the chart. These values update as traders scroll or zoom their charts, which gives way to a class of indicators that can dynamically recalculate and draw visuals on visible bars only, as users scroll or zoom their charts. We hope this library's functions help you make the most of the world of possibilities these new built-ins provide for Pine scripts.
For an example of a script using this library, have a look at the Chart VWAP indicator.
█ CONCEPTS
Chart properties
The new chart.left_visible_bar_time and chart.right_visible_bar_time variables return the opening time of the leftmost and rightmost bars on the chart. They are only two of many new built-ins in the `chart.*` namespace. See this blog post for more information, or look them up by typing "chart." in the Pine Script™ Reference Manual .
Dynamic recalculation of scripts on visible bars
Any script using chart.left_visible_bar_time or chart.right_visible_bar_time acquires a unique property, which triggers its recalculation when traders scroll or zoom their charts in such a way that the range of visible bars on the chart changes. This library's functions use the two recent built-ins to derive various values from the range of visible bars.
Designing your scripts for dynamic recalculation
For the library's functions to work correctly, they must be called on every bar. For reliable results, assign their results to global variables and then use the variables locally where needed — not the raw function calls.
Some functions like `barIsVisible()` or `open()` will return a value starting on the leftmost visible bar. Others such as `high()` or `low()` will also return a value starting on the leftmost visible bar, but their correct value can only be known on the rightmost visible bar, after all visible bars have been analyzed by the script.
You can plot values as the script executes on visible bars, but efficient code will, when possible, create resource-intensive labels, lines or tables only once in the global scope using var , and then use the setter functions to modify their properties on the last bar only. The example code included in this library uses this method.
Keep in mind that when your script uses chart.left_visible_bar_time or chart.right_visible_bar_time , your script will recalculate on all bars each time the user scrolls or zooms their chart. To provide script users with the best experience you should strive to keep calculations to a minimum and use efficient code so that traders are not always waiting for your script to recalculate every time they scroll or zoom their chart.
Another aspect to consider is the fact that the rightmost visible bar will not always be the last bar in the dataset. When script users scroll back in time, a large portion of the time series the script calculates on may be situated after the rightmost visible bar. We can never assume the rightmost visible bar is also the last bar of the time series. Use `barIsVisible()` to restrict calculations to visible bars, but also consider that your script can continue to execute past them.
Look first. Then leap.
█ FUNCTIONS
The library contains the following functions:
barIsVisible()
Condition to determine if a given bar is within the users visible time range.
Returns: (bool) True if the the calling bar is between the `chart.left_visible_bar_time` and the `chart.right_visible_bar_time`.
high()
Determines the value of the highest `high` in visible bars.
Returns: (float) The maximum high value of visible chart bars.
highBarIndex()
Determines the `bar_index` of the highest `high` in visible bars.
Returns: (int) The `bar_index` of the `high()`.
highBarTime()
Determines the bar time of the highest `high` in visible bars.
Returns: (int) The `time` of the `high()`.
low()
Determines the value of the lowest `low` in visible bars.
Returns: (float) The minimum low value of visible chart bars.
lowBarIndex()
Determines the `bar_index` of the lowest `low` in visible bars.
Returns: (int) The `bar_index` of the `low()`.
lowBarTime()
Determines the bar time of the lowest `low` in visible bars.
Returns: (int) The `time` of the `low()`.
open()
Determines the value of the opening price in the visible chart time range.
Returns: (float) The `open` of the leftmost visible chart bar.
close()
Determines the value of the closing price in the visible chart time range.
Returns: (float) The `close` of the rightmost visible chart bar.
leftBarIndex()
Determines the `bar_index` of the leftmost visible chart bar.
Returns: (int) A `bar_index`.
rightBarIndex()
Determines the `bar_index` of the rightmost visible chart bar.
Returns: (int) A `bar_index`
bars()
Determines the number of visible chart bars.
Returns: (int) The number of bars.
volume()
Determines the sum of volume of all visible chart bars.
Returns: (float) The cumulative sum of volume.
ohlcv()
Determines the open, high, low, close, and volume sum of the visible bar time range.
Returns: ( ) A tuple of the OHLCV values for the visible chart bars. Example: open is chart left, high is the highest visible high, etc.
chartYPct(pct)
Determines a price level as a percentage of the visible bar price range, which depends on the chart's top/bottom margins in "Settings/Appearance".
Parameters:
pct : (series float) Percentage of the visible price range (50 is 50%). Negative values are allowed.
Returns: (float) A price level equal to the `pct` of the price range between the high and low of visible chart bars. Example: 50 is halfway between the visible high and low.
chartXTimePct(pct)
Determines a time as a percentage of the visible bar time range.
Parameters:
pct : (series float) Percentage of the visible time range (50 is 50%). Negative values are allowed.
Returns: (float) A time in UNIX format equal to the `pct` of the time range from the `chart.left_visible_bar_time` to the `chart.right_visible_bar_time`. Example: 50 is halfway from the leftmost visible bar to the rightmost.
chartXIndexPct(pct)
Determines a `bar_index` as a percentage of the visible bar time range.
Parameters:
pct : (series float) Percentage of the visible time range (50 is 50%). Negative values are allowed.
Returns: (float) A time in UNIX format equal to the `pct` of the time range from the `chart.left_visible_bar_time` to the `chart.right_visible_bar_time`. Example: 50 is halfway from the leftmost visible bar to the rightmost.
whenVisible(src, whenCond, length)
Creates an array containing the `length` last `src` values where `whenCond` is true for visible chart bars.
Parameters:
src : (series int/float) The source of the values to be included.
whenCond : (series bool) The condition determining which values are included. Optional. The default is `true`.
length : (simple int) The number of last values to return. Optional. The default is all values.
Returns: (float ) The array ID of the accumulated `src` values.
avg(src)
Gathers values of the source over visible chart bars and averages them.
Parameters:
src : (series int/float) The source of the values to be averaged. Optional. Default is `close`.
Returns: (float) A cumulative average of values for the visible time range.
median(src)
Calculates the median of a source over visible chart bars.
Parameters:
src : (series int/float) The source of the values. Optional. Default is `close`.
Returns: (float) The median of the `src` for the visible time range.
vVwap(src)
Calculates a volume-weighted average for visible chart bars.
Parameters:
src : (series int/float) Source used for the VWAP calculation. Optional. Default is `hlc3`.
Returns: (float) The VWAP for the visible time range.
Rabbit HoleHow deep is the Rabbit hole? Interesting experiment that finds the RISING HIGHS and FALLING LOWS and place the difference between the highs and lows into separate arrays.
== Calculations ==
In case current high is higher than previous high, we calculate the value by subtracting the current highest high with the previous High (lowest high) into array A,
same method for the lows just in Array B.
Since we subtract highs and lows it means velocity is taken into consideration with the plotting.
After adding a new value we remove the oldest value if the array is bigger than the Look back length. This is done for both lows and highs array.
Afterwards we sum up the lows and highs array (separately) and plot them separately, We can also smooth them a bit with Moving averages like HMA, JMA, KAMA and more.
== RULES ==
When High Lines crosses the Low Line we get a GREEN tunnel.
When Low Lines crosses the High line we get the RED tunnel.
The Greenish the stronger the up trend.
The Redish the stronger the downtrend.
== NOTES ==
Bars are not colored by default.
Better for higher time frames, 1 hour and above.
Enjoy and like if you like!
Follow up for new scripts: www.tradingview.com
Global Sessions Pro NY/London/Tokyo - O/C/H/LGLOBAL SESSIONS PRO — NY / LONDON / TOKYO
Session Opens, Highs, Lows, Midpoints, Closes, Ranges & Killzones
OVERVIEW
Global Sessions Pro is a comprehensive session-mapping indicator designed for traders who rely on market structure, session context, and time-based behavior.
The indicator automatically plots New York, London, and Tokyo sessions, including:
• Session Open, High, Low, Midpoint, and Close
• Prior session levels projected forward
• Session range boxes
• Right-side labeled price levels (clearly identified)
• Stacked session summary labels (no overlap)
• Optional killzones and overlap windows
• Breakout alerts (prior or current session levels)
The script is fully timezone-aware, DST-safe, and works on any chart timeframe.
KEY FEATURES
SESSION MAPPING
For each session (NY / London / Tokyo), the indicator can display:
• Open
• High
• Low
• Midpoint (High + Low) / 2
• Close
Each level is drawn with its own horizontal line and optional right-side label, so there is never confusion about which line represents which level.
SESSION RANGE BOXES
Optional shaded boxes highlight the true session range as it develops in real time.
These are useful for visualizing:
• Compression vs expansion
• Relative session volatility
• Strength or weakness between sessions
Opacity and visibility are fully configurable.
RIGHT-SIDE LEVEL LABELS
Each session level can be labeled on the right edge of the chart, showing:
• Session name (NY / Lon / Tok)
• Level type (O / H / L / M / C)
• Optional price value
Examples:
NY H: 18234.25
Lon L: 18098.50
Tok M: 18142.75
This eliminates ambiguity when multiple session levels overlap or share similar colors.
SESSION SUMMARY LABELS (AUTO-STACKED)
At the top of each session range, an optional summary label displays:
• Session name
• Open / High / Low / Close
• Total range (points)
• Range in ticks
• ATR multiple
Summary labels are automatically stacked vertically using ATR-based or tick-based spacing, preventing overlap even when multiple sessions occur close together.
PRIOR SESSION LEVELS
The indicator can project prior session levels into the next session, including:
• Prior High and Low
• Optional prior Open, Close, and Midpoint
These levels are commonly used for:
• Support and resistance
• Liquidity sweeps
• Mean reversion
• Failed breakouts
Projection length is configurable and safely capped to comply with TradingView drawing limits.
KILLZONES AND SESSION OVERLAPS
Optional background shading highlights key institutional windows:
• London Open
• New York Open
• London / New York overlap
These zones help identify high-probability volatility windows and time-based trade filters.
All killzones respect the selected session timezone basis.
ALERTS
Built-in alerts are available for:
• Break of prior session high
• Break of prior session low
• Break of current session high
• Break of current session low
Alerts can be configured to trigger on wick or close.
Alert logic is written using precomputed crossover detection to ensure historical consistency and avoid missed or false alerts.
TIMEZONE AND SESSION HANDLING (IMPORTANT)
SESSION TIME BASIS OPTIONS
The indicator supports three session-time modes:
Market Local (DST-aware) – Recommended
• New York uses America/New_York
• London uses Europe/London
• Tokyo uses Asia/Tokyo
• Automatically adjusts for daylight saving time
UTC (Fixed)
• Sessions are interpreted strictly in UTC
• Best for crypto or non-DST workflows
• Requires manual adjustment during DST changes
Custom Timezone
• Define a single custom timezone for all sessions
This ensures sessions display correctly regardless of the chart’s timezone.
DEFAULT SESSION TIMES
(Default values assume Market Local (DST-aware) mode)
Tokyo: 09:00 – 15:00
London: 08:00 – 16:30
New York: 09:30 – 16:00
These defaults are optimized for cash and index trading.
FX traders may adjust session windows as needed.
BEST USE CASES
This indicator is particularly effective for:
• Index futures (ES, NQ, RTY, DAX, FTSE)
• Forex session-based strategies
• Time-based breakout systems
• Liquidity sweep and mean-reversion models
• London Open and New York Open trading
• Multi-session market context analysis
PERFORMANCE AND SAFETY NOTES
• All future-drawn objects are capped to comply with TradingView limits
• Crossover logic is evaluated every bar to prevent calculation drift
• Old session drawings are automatically culled to reduce chart clutter
• Works on all intraday and higher timeframes
RECOMMENDED SETTINGS
For most traders:
• Session Time Basis: Market Local (DST-aware)
• Show Open / High / Low / Midpoint: ON
• Prior Session Levels: ON
• Summary Labels: ON
• Killzones: ON
• Alerts: ON (Close-based)
FINAL NOTES
This indicator is designed to provide objective session structure without opinionated trade signals. It works best as a context layer combined with your own execution rules, confirmations, and risk management.
If you trade time, structure, and liquidity, this script provides the framework.
ICT Liquidity Sweep/Swing Fail Pattern V.1# ICT Liquidity Sweep/Swing Fail Pattern V.1
## Indicator Description & User Guide
---
## 📊 Indicator Overview
**Name:** ICT Liquidity Sweep/Swing Fail Pattern V.1
**Type:** Support/Resistance & Liquidity Detection
**Trading Style:** ICT Concepts (Inner Circle Trader)
**Best Timeframes:** 1M, 5M, 15M, 1H
---
## 🎯 Core Features
### 1. **Support & Resistance Lines**
- Automatically draws key swing high and swing low levels
- Based on significant pivot points in price structure
- Updates dynamically as new swings form
### 2. **"X" Mark - Liquidity Sweep**
- **Symbol:** X marker on chart
- **Meaning:** Indicates a liquidity sweep (stop hunt)
- **What it shows:** Price briefly moved beyond a key level to trigger stops, then reversed
- **Trading significance:** High-probability reversal zones after liquidity is taken
### 3. **"SFP" Label - Swing Failure Pattern**
- **Symbol:** SFP text label
- **Meaning:** Swing Failure Pattern detected
- **What it shows:** Price attempted to make a new high/low but failed and reversed sharply
- **Trading significance:** Strong reversal signal - smart money rejecting the level
---
## 📈 How to Use This Indicator
### Entry Setup Strategy:
#### **For SHORT Trades (Sell):**
1. Wait for **SFP** to appear at a swing high
2. Look for **X marker** confirming liquidity sweep above the high
3. **Entry Zone (Red Box):** Enter SHORT positions when price returns to this zone
4. **Stop Loss:** Place above the red zone (above the swept high)
5. **Take Profit (Green Box):** Target the green zone below
#### **For LONG Trades (Buy):**
1. Wait for **SFP** to appear at a swing low
2. Look for **X marker** confirming liquidity sweep below the low
3. **Entry Zone (Green Box):** Enter LONG positions when price returns to this zone
4. **Stop Loss:** Place below the green zone (below the swept low)
5. **Take Profit (Red Box):** Target the red zone above
---
## 🎨 Color Coding System
| Color | Zone Type | Usage |
|-------|-----------|-------|
| 🔴 **Red Box** | Stop Loss / Supply Zone | Place SL here for LONG trades / Entry zone for SHORT trades |
| 🟢 **Green Box** | Take Profit / Demand Zone | Target zone for LONG trades / Place SL here for SHORT trades |
| ❌ **X Mark** | Liquidity Sweep Point | Stop hunt occurred - reversal likely |
| 📝 **SFP Label** | Swing Failure Pattern | Failed breakout - strong reversal signal |
---
## 💡 Trading Examples
### Example 1: SHORT Trade (As shown in your chart)
```
1. SFP appears at swing high (Red zone around 4,000)
2. X marker confirms liquidity sweep above the high
3. Entry: SHORT when price re-enters red zone
4. Stop Loss: Above red zone (e.g., 4,002)
5. Take Profit: Green zone below (3,964-3,972)
6. Risk:Reward = 1:3+
```
### Example 2: LONG Trade
```
1. SFP appears at swing low (Green zone)
2. X marker confirms liquidity sweep below the low
3. Entry: LONG when price re-enters green zone
4. Stop Loss: Below green zone
5. Take Profit: Previous red zone above
6. Risk:Reward = 1:2 minimum
```
---
## ⚠️ Important Trading Rules
### ✅ DO:
- Wait for BOTH SFP and X marker confirmation
- Enter on price returning to the zone (not on first touch)
- Use proper position sizing (1-2% risk per trade)
- Combine with market structure analysis
- Look for confluences (orderblocks, fair value gaps)
### ❌ DON'T:
- Trade against the higher timeframe trend
- Enter without confirmation signals
- Ignore the colored zones for SL/TP placement
- Overtrade - wait for quality setups
- Move stop loss to breakeven too early
---
## 🔧 Indicator Settings (Typical)
**Adjustable Parameters:**
- Swing Length: Number of bars to identify swing points
- Show/Hide X markers
- Show/Hide SFP labels
- Zone opacity and colors
- Line thickness
---
## 📚 ICT Concepts Explained
### **Liquidity Sweep:**
Smart money intentionally pushes price beyond key levels to trigger retail stop losses, then reverses to their intended direction. The X marker identifies these moments.
### **Swing Failure Pattern (SFP):**
Price attempts to make a new high/low but lacks follow-through, indicating weak momentum and likely reversal. Similar to a "false breakout" but more specific to swing structures.
### **Supply & Demand Zones:**
- **Red zones** = Areas where selling pressure overwhelmed buyers
- **Green zones** = Areas where buying pressure overwhelmed sellers
- These zones act as magnets for price to return and react
---
## 🎓 Best Practices
1. **Confluence is Key:**
- Combine with daily/weekly bias
- Check for orderblocks nearby
- Look for imbalances (FVG)
2. **Session Timing:**
- Best during London/New York sessions
- Avoid low liquidity periods
3. **Risk Management:**
- Never risk more than 1-2% per trade
- Use proper lot sizing
- Take partial profits at key levels
4. **Timeframe Correlation:**
- Check higher timeframe for bias
- Enter on lower timeframe for precision
- Exit based on higher timeframe targets
---
## 📞 Support & Updates
**Version:** 1.0
**Compatibility:** TradingView Pine Script v5
**Updates:** Regular improvements based on ICT methodology
---
## ⚡ Quick Reference Card
| Signal | Action | SL Placement | TP Target |
|--------|--------|--------------|-----------|
| SFP + X at High | SHORT at Red Zone | Above Red | Green Zone |
| SFP + X at Low | LONG at Green Zone | Below Green | Red Zone |
**Remember:** The indicator shows you WHERE to trade, but YOU decide WHEN based on confirmation and market context.
---
*Disclaimer: This indicator is a tool for technical analysis. Always use proper risk management and never trade with money you cannot afford to lose.*
AI-based Price action confluence dashboard# **AI-Based Price Action Confluence Dashboard - Publication Guide**
Here's a comprehensive introduction guide for your TradingView indicator publication:
***
## **📊 TITLE**
**AI-Based Price Action Confluence Dashboard**
***
## **🎯 SHORT DESCRIPTION** (For the summary field)
A sophisticated real-time confluence scoring system that analyzes multiple price action signals across 15-minute timeframes, providing traders with an AI-weighted scoring mechanism (0-6 scale) to identify high-probability trade setups through visual signal panels and intelligent path detection.
***
## **📝 FULL DESCRIPTION**
### **Overview**
The AI-Based Price Action Confluence Dashboard is an advanced technical indicator designed to eliminate guesswork in intraday trading by systematically scoring and displaying multiple price action signals in real-time. Unlike traditional single-indicator approaches, this dashboard employs a confluence methodology that combines multiple independent signals to provide stronger trade confirmations and reduce false signals.
This indicator is specifically optimized for **1-minute chart analysis** while monitoring **15-minute price structure**, making it ideal for day traders and scalpers who need precise entry timing with larger timeframe context.
***
### **🔑 Key Features**
**✅ Real-Time AI Confluence Scoring**
- Dynamic scoring system (0-6 points) for both bullish and bearish setups
- Visual meter display shows signal strength at a glance
- Color-coded backgrounds indicate confluence levels (strong, moderate, mixed)
**✅ Multi-Signal Analysis**
The dashboard tracks 6 distinct signal types:
1. **FTFC (First to Finish Close)** - Base & Bonus signals
2. **Long/Short Grab** - Liquidity sweep patterns (Path A)
3. **High/Low Hold** - Extended momentum confirmation (+2 bonus)
4. **2-Up/2-Down** - Clean breakout patterns (Path B)
5. **Breakaway** - First candle gap strategies
**✅ Intelligent Path Detection**
- Mutually exclusive path logic prevents signal conflicts
- Automatically identifies whether price is following a "sweep path" or "clean path"
- Unavailable paths are clearly marked with gray indicators
**✅ Visual Signal Panels**
- 🟢 Green Light = Bullish signal ACTIVE
- 🔴 Red Light = Bearish signal ACTIVE
- 🟡 Yellow Light = Signal BUILDING (conditions partially met)
- ⚪ White Light = Signal OFF
- ▪️ Gray Square = Path UNAVAILABLE (mutually exclusive)
**✅ Comprehensive Alert System**
- 10 different alert conditions covering all major signals
- Strong confluence alerts (5+ points)
- Individual signal completion alerts
- Customizable alert messages
***
### **📐 How It Works**
#### **The Confluence Methodology**
This indicator implements a sophisticated confluence trading approach where multiple independent price action signals are combined to identify high-probability setups. Each signal type contributes points to either the bullish or bearish score, with a maximum of 6 points per direction.
**Scoring Breakdown:**
**BULLISH SIGNALS:**
- FTFC Base (15m close > previous 15m close) = +1
- FTFC Bonus (price clears 15th candle high) = +1
- **PATH A (Sweep):** Long Grab = +1, High Hold Bonus = +2
- **PATH B (Clean):** 2-Up = +1, 2-Up Bonus = +1
- Breakaway (gap above first candle) = +1
**BEARISH SIGNALS:**
- FTFC Base (15m close < previous 15m close) = +1
- FTFC Bonus (price clears 15th candle low) = +1
- **PATH A (Sweep):** Short Grab = +1, Low Hold Bonus = +2
- **PATH B (Clean):** 2-Down = +1, 2-Down Bonus = +1
- Breakaway (gap below first candle) = +1
#### **Path Detection Logic**
The indicator automatically determines which path the market is following:
**PATH A: SWEEP PATH**
- Activated when previous 15m low (bull) or high (bear) is breached
- Indicates liquidity grab before reversal
- Includes powerful +2 bonus for "Hold" confirmations
- Mutually exclusive with Path B
**PATH B: CLEAN PATH**
- Activated when previous 15m low (bull) or high (bear) holds
- Indicates strong directional momentum without sweep
- Cleaner price action but smaller point potential
- Mutually exclusive with Path A
This mutual exclusivity prevents double-counting and ensures signal accuracy.
***
### **🎨 How to Use**
#### **Installation**
1. Add indicator to your 1-minute chart
2. The dashboard appears as a table overlay (default: top right)
3. No additional indicators required - this is a complete system
#### **Reading the Dashboard**
**Top Section - Confluence Meter:**
- Shows current bull/bear scores with visual dot meters
- Background color changes based on confluence strength:
- **Bright Green/Red** = 5+ points (strong directional bias)
- **Medium Green/Red** = 3+ points (moderate bias)
- **Orange** = 3+ points both sides (conflicting signals)
- **Gray** = Low confluence (choppy conditions)
**Signal Panels Section:**
- Each row shows a signal type with bull/bear lights side-by-side
- Active signals (🟢🔴) contribute to the total score
- Building signals (🟡) indicate potential setups forming
- Unavailable paths (▪️) show which exclusive path is blocked
#### **Trading Strategy**
**High-Probability Long Entries:**
- Bull score ≥ 5 AND bear score ≤ 1
- Multiple green lights active in signal panels
- PATH A or PATH B showing full completion
- Consider entry on pullback to key 15m level
**High-Probability Short Entries:**
- Bear score ≥ 5 AND bull score ≤ 1
- Multiple red lights active in signal panels
- PATH A or PATH B showing full completion
- Consider entry on rally to key 15m level
**Avoid Trading When:**
- Both scores are 3+ (conflicting signals)
- No path is showing active/building status
- Score is below 3 on both sides (low confluence)
#### **Risk Management**
- Use 15m swing high/low for stop placement
- Target opposing 15m level or previous session extremes
- Scale out at partial targets when confluence decreases
- Best results when combined with proper position sizing
***
### **⚙️ Customization**
**Dashboard Settings:**
- **Table Location:** Top Left, Top Right, Bottom Left, Bottom Right
- **Text Size:** Tiny, Small, Normal, Large
**Color Scheme:**
- **Bullish Color:** Customize green for bull signals (default: #00cc66)
- **Bearish Color:** Customize red for bear signals (default: #ff4444)
- **Building Color:** Customize yellow for forming signals (default: #ffaa00)
- **Inactive Color:** Customize gray for off signals (default: #555555)
- **Unavailable Color:** Customize dark gray for blocked paths (default: #333333)
All colors can be adjusted to match your chart theme or visual preferences.
***
### **🎯 Best Practices**
1. **Use on 1-minute charts only** - The indicator is calibrated for this timeframe
2. **Trade during liquid sessions** - Best results during NY/London overlap
3. **Wait for 3+ confluence** - Minimum threshold for trade consideration
4. **Watch path transitions** - Signal strength changes when paths flip
5. **Use alerts strategically** - Set alerts for 5+ confluence to catch strong setups
6. **Combine with volume** - High volume confirms signal validity
7. **Respect 15m structure** - Don't fight the larger timeframe bias
***
### **⚠️ Important Notes**
- This indicator is designed for **intraday trading only**
- Requires active monitoring during trading sessions
- Works best on liquid instruments (major forex pairs, indices, large-cap stocks)
- Not suitable for swing trading or position trading
- Past performance does not guarantee future results
- Always use proper risk management and position sizing
***
### **🏷️ Category**
**Oscillators** or **Volatility** (choose based on TradingView categories)
***
### **🏷️ Suggested Tags**
- confluence
- price action
- day trading
- scalping
- intraday
- signals
- dashboard
- multi-timeframe
- 1-minute
- 15-minute
***
### **📜 Disclaimer**
This indicator is a tool for technical analysis and should not be used as the sole basis for trading decisions. All trading involves risk, and you should never risk more than you can afford to lose. The developer assumes no responsibility for trading losses incurred through the use of this indicator. Always practice proper risk management and consider your own risk tolerance before trading.
Fair Value Gap Signals [Kodexius]Fair Value Gap Signals is an advanced market structure tool that automatically detects and tracks Fair Value Gaps (FVGs), evaluates the quality of each gap, and highlights high value reaction zones with visual metrics and signal markers.
The script is designed for traders who focus on liquidity concepts, order flow and mean reversion. It goes beyond basic FVG plotting by continuously monitoring how price interacts with each gap and by quantifying three key aspects of each zone:
-Entry velocity inside the gap
-Volume absorption during tests
-Structural integrity and depth of penetration
The result is a dynamic, information rich visualization of which gaps are being respected, which are being absorbed, and where potential reversals or continuations are most likely to occur.
All visual elements are configurable, including the maximum number of visible gaps per direction, mitigation method (close or wick) and an ATR based filter to ignore insignificant gaps in low volatility environments.
🔹 Features
🔸 Automated Fair Value Gap Detection
The script detects both bullish and bearish FVGs based on classic three candle logic:
Bullish FVG: current low is strictly above the high from two bars ago
Bearish FVG: current high is strictly below the low from two bars ago
🔸 ATR Based Gap Filter
To avoid clutter and low quality signals, the script can ignore very small gaps using an ATR based filter.
🔸Per Gap State Machine and Lifecycle
Each gap is tracked with an internal status:
Fresh: gap has just formed and has not been tested
Testing: price is currently trading inside the gap
Tested: gap was tested and left, waiting for a potential new test
Rejected: price entered the gap and then rejected away from it
Filled: gap is considered fully mitigated and no longer active
This state machine allows the script to distinguish between simple touches, multiple tests and meaningful reversals, and to trigger different alerts accordingly.
🔸 Visual Ranking of Gaps by Metrics
For each active gap, three additional horizontal rank bars are drawn on top of the gap area:
Rank 1 (Vel): maximum entry velocity inside the gap
Rank 2 (Vol): relative test volume compared to average volume
Rank 3 (Dpt): remaining safety of the gap based on maximum penetration depth
These rank bars extend horizontally from the creation bar, and their length is a visual score between 0 and 1, scaled to the age of the gap. Longer bars represent stronger or more favorable conditions.
🔸Signals and Rejection Markers
When a gap shows signs of rejection (price enters the gap and then closes away from it with sufficient activity), the script can print a signal label at the reaction point. These markers summarize the internal metrics of the gap using a tooltip:
-Velocity percentage
-Volume percentage
-Safety score
-Number of tests
🔸 Flexible Mitigation Logic (Close or Wick)
You can choose how mitigation is defined via the Mitigation Method input:
Close: the gap is considered filled only when the closing price crosses the gap boundary
Wick: a full fill is detected as soon as any wick crosses the gap boundary
🔸 Alert Conditions
-New FVG formed
-Price entering a gap (testing)
-Gap fully filled and invalidated
-Rejection signal generated
🔹Calculations
This section summarizes the main calculations used under the hood. Only the core logic is covered.
1. ATR Filter and Gap Size
The script uses a configurable ATR length to filter out small gaps. First the ATR is computed:
float atrVal = ta.atr(atrLength)
Gap size for both directions is then measured:
float gapSizeBull = low - high
float gapSizeBear = low - high
If useAtrFilter is enabled, gaps smaller than atrVal are ignored. This ties the minimum gap size to the current volatility regime.
2. Fair Value Gap Detection
The basic FVG conditions use a three bar structure:
bool fvgBull = low > high
bool fvgBear = high < low
For bullish gaps the script stores:
-top as low of the current bar
-bottom as high
For bearish gaps:
-top as high of the current bar
-bottom as low
This defines the price range that is considered the imbalance area.
3. Depth and Safety Score
Depth measures how far price has penetrated into the gap since its creation. For each bar, the script computes a currentDepth and updates the maximum depth:
float currentDepth = 0.0
if g.isBullish
if l < g.top
currentDepth := g.top - l
else
if h > g.bottom
currentDepth := h - g.bottom
if currentDepth > g.maxDepth
g.maxDepth := currentDepth
The safety score expresses how much of the gap remains intact:
float depthRatio = g.maxDepth / gapSize
float safetyScore = math.max(0.0, 1.0 - depthRatio)
safetyScore near 1: gap is mostly untouched
safetyScore near 0: gap is mostly or fully filled
4. Velocity Metric
Velocity captures how aggressively price moves inside the gap. It is based on the body to range ratio of each bar that trades within the gap and rewards bars that move in the same direction as the gap:
float barRange = h - l
float bodyRatio = math.abs(close - open) / barRange
float directionBonus = 0.0
if g.isBullish and close > open
directionBonus := 0.2
else if not g.isBullish and close < open
directionBonus := 0.2
float currentVelocity = math.min(bodyRatio + directionBonus, 1.0)
The gap keeps track of the strongest observed value:
if currentVelocity > g.maxVelocity
g.maxVelocity := currentVelocity
This maximum is later used as velScore when building the velocity rank bar.
5. Volume Accumulation and Volume Score
While price is trading inside a gap, the script accumulates the traded volume:
if isInside
g.testVolume += volume
It also keeps track of the number of tests and the volume at the start of the first test:
if g.status == "Fresh"
g.status := "Testing"
g.testCount := 1
g.testStartVolume := volume
An average volume is computed using a 20 period SMA:
float volAvg = ta.sma(volume, 20)
The expected volume is approximated as:
float expectedVol = volAvg * math.max(1, (bar_index - g.index) / 2)
The volume score is then:
float volScore = math.min(g.testVolume / expectedVol, 1.0)
This produces a normalized 0 to 1 metric that shows whether the gap has attracted more or less volume than expected over its lifetime.
6. Rank Bar Scaling
All three scores are projected visually along the time axis as horizontal bars. The script uses the age of the gap in bars as the maximum width:
float maxWidth = math.max(bar_index - g.index, 1)
Then each metric is mapped to a bar length:
int len1 = int(math.max(1, maxWidth * velScore))
g.rankBox1.set_right(g.index + len1)
int len2 = int(math.max(1, maxWidth * volScore))
g.rankBox2.set_right(g.index + len2)
int len3 = int(math.max(1, maxWidth * safetyScore))
g.rankBox3.set_right(g.index + len3)
This creates an intuitive visual representation where stronger metrics produce longer rank bars, making it easy to quickly compare the relative quality of multiple FVGs on the chart.
Volatility Risk PremiumTHE INSURANCE PREMIUM OF THE STOCK MARKET
Every day, millions of investors face a fundamental question that has puzzled economists for decades: how much should protection against market crashes cost? The answer lies in a phenomenon called the Volatility Risk Premium, and understanding it may fundamentally change how you interpret market conditions.
Think of the stock market like a neighborhood where homeowners buy insurance against fire. The insurance company charges premiums based on their estimates of fire risk. But here is the interesting part: insurance companies systematically charge more than the actual expected losses. This difference between what people pay and what actually happens is the insurance premium. The same principle operates in financial markets, but instead of fire insurance, investors buy protection against market volatility through options contracts.
The Volatility Risk Premium, or VRP, measures exactly this difference. It represents the gap between what the market expects volatility to be (implied volatility, as reflected in options prices) and what volatility actually turns out to be (realized volatility, calculated from actual price movements). This indicator quantifies that gap and transforms it into actionable intelligence.
THE FOUNDATION
The academic study of volatility risk premiums began gaining serious traction in the early 2000s, though the phenomenon itself had been observed by practitioners for much longer. Three research papers form the backbone of this indicator's methodology.
Peter Carr and Liuren Wu published their seminal work "Variance Risk Premiums" in the Review of Financial Studies in 2009. Their research established that variance risk premiums exist across virtually all asset classes and persist over time. They documented that on average, implied volatility exceeds realized volatility by approximately three to four percentage points annualized. This is not a small number. It means that sellers of volatility insurance have historically collected a substantial premium for bearing this risk.
Tim Bollerslev, George Tauchen, and Hao Zhou extended this research in their 2009 paper "Expected Stock Returns and Variance Risk Premia," also published in the Review of Financial Studies. Their critical contribution was demonstrating that the VRP is a statistically significant predictor of future equity returns. When the VRP is high, meaning investors are paying substantial premiums for protection, future stock returns tend to be positive. When the VRP collapses or turns negative, it often signals that realized volatility has spiked above expectations, typically during market stress periods.
Gurdip Bakshi and Nikunj Kapadia provided additional theoretical grounding in their 2003 paper "Delta-Hedged Gains and the Negative Market Volatility Risk Premium." They demonstrated through careful empirical analysis why volatility sellers are compensated: the risk is not diversifiable and tends to materialize precisely when investors can least afford losses.
HOW THE INDICATOR CALCULATES VOLATILITY
The calculation begins with two separate measurements that must be compared: implied volatility and realized volatility.
For implied volatility, the indicator uses the CBOE Volatility Index, commonly known as the VIX. The VIX represents the market's expectation of 30-day forward volatility on the S&P 500, calculated from a weighted average of out-of-the-money put and call options. It is often called the "fear gauge" because it rises when investors rush to buy protective options.
Realized volatility requires more careful consideration. The indicator offers three distinct calculation methods, each with specific advantages rooted in academic literature.
The Close-to-Close method is the most straightforward approach. It calculates the standard deviation of logarithmic daily returns over a specified lookback period, then annualizes this figure by multiplying by the square root of 252, the approximate number of trading days in a year. This method is intuitive and widely used, but it only captures information from closing prices and ignores intraday price movements.
The Parkinson estimator, developed by Michael Parkinson in 1980, improves efficiency by incorporating high and low prices. The mathematical formula calculates variance as the sum of squared log ratios of daily highs to lows, divided by four times the natural logarithm of two, times the number of observations. This estimator is theoretically about five times more efficient than the close-to-close method because high and low prices contain additional information about the volatility process.
The Garman-Klass estimator, published by Mark Garman and Michael Klass in 1980, goes further by incorporating opening, high, low, and closing prices. The formula combines half the squared log ratio of high to low prices minus a factor involving the log ratio of close to open. This method achieves the minimum variance among estimators using only these four price points, making it particularly valuable for markets where intraday information is meaningful.
THE CORE VRP CALCULATION
Once both volatility measures are obtained, the VRP calculation is straightforward: subtract realized volatility from implied volatility. A positive result means the market is paying a premium for volatility insurance. A negative result means realized volatility has exceeded expectations, typically indicating market stress.
The raw VRP signal receives slight smoothing through an exponential moving average to reduce noise while preserving responsiveness. The default smoothing period of five days balances signal clarity against lag.
INTERPRETING THE REGIMES
The indicator classifies market conditions into five distinct regimes based on VRP levels.
The EXTREME regime occurs when VRP exceeds ten percentage points. This represents an unusual situation where the gap between implied and realized volatility is historically wide. Markets are pricing in significantly more fear than is materializing. Research suggests this often precedes positive equity returns as the premium normalizes.
The HIGH regime, between five and ten percentage points, indicates elevated risk aversion. Investors are paying above-average premiums for protection. This often occurs after market corrections when fear remains elevated but realized volatility has begun subsiding.
The NORMAL regime covers VRP between zero and five percentage points. This represents the long-term average state of markets where implied volatility modestly exceeds realized volatility. The insurance premium is being collected at typical rates.
The LOW regime, between negative two and zero percentage points, suggests either unusual complacency or that realized volatility is catching up to implied volatility. The premium is shrinking, which can precede either calm continuation or increased stress.
The NEGATIVE regime occurs when realized volatility exceeds implied volatility. This is relatively rare and typically indicates active market stress. Options were priced for less volatility than actually occurred, meaning volatility sellers are experiencing losses. Historically, deeply negative VRP readings have often coincided with market bottoms, though timing the reversal remains challenging.
TERM STRUCTURE ANALYSIS
Beyond the basic VRP calculation, sophisticated market participants analyze how volatility behaves across different time horizons. The indicator calculates VRP using both short-term (default ten days) and long-term (default sixty days) realized volatility windows.
Under normal market conditions, short-term realized volatility tends to be lower than long-term realized volatility. This produces what traders call contango in the term structure, analogous to futures markets where later delivery dates trade at premiums. The RV Slope metric quantifies this relationship.
When markets enter stress periods, the term structure often inverts. Short-term realized volatility spikes above long-term realized volatility as markets experience immediate turmoil. This backwardation condition serves as an early warning signal that current volatility is elevated relative to historical norms.
The academic foundation for term structure analysis comes from Scott Mixon's 2007 paper "The Implied Volatility Term Structure" in the Journal of Derivatives, which documented the predictive power of term structure dynamics.
MEAN REVERSION CHARACTERISTICS
One of the most practically useful properties of the VRP is its tendency to mean-revert. Extreme readings, whether high or low, tend to normalize over time. This creates opportunities for systematic trading strategies.
The indicator tracks VRP in statistical terms by calculating its Z-score relative to the trailing one-year distribution. A Z-score above two indicates that current VRP is more than two standard deviations above its mean, a statistically unusual condition. Similarly, a Z-score below negative two indicates VRP is unusually low.
Mean reversion signals trigger when VRP reaches extreme Z-score levels and then shows initial signs of reversal. A buy signal occurs when VRP recovers from oversold conditions (Z-score below negative two and rising), suggesting that the period of elevated realized volatility may be ending. A sell signal occurs when VRP contracts from overbought conditions (Z-score above two and falling), suggesting the fear premium may be excessive and due for normalization.
These signals should not be interpreted as standalone trading recommendations. They indicate probabilistic conditions based on historical patterns. Market context and other factors always matter.
MOMENTUM ANALYSIS
The rate of change in VRP carries its own information content. Rapidly rising VRP suggests fear is building faster than volatility is materializing, often seen in the early stages of corrections before realized volatility catches up. Rapidly falling VRP indicates either calming conditions or rising realized volatility eating into the premium.
The indicator tracks VRP momentum as the difference between current VRP and VRP from a specified number of bars ago. Positive momentum with positive acceleration suggests strengthening risk aversion. Negative momentum with negative acceleration suggests intensifying stress or rapid normalization from elevated levels.
PRACTICAL APPLICATION
For equity investors, the VRP provides context for risk management decisions. High VRP environments historically favor equity exposure because the market is pricing in more pessimism than typically materializes. Low or negative VRP environments suggest either reducing exposure or hedging, as markets may be underpricing risk.
For options traders, understanding VRP is fundamental to strategy selection. Strategies that sell volatility, such as covered calls, cash-secured puts, or iron condors, tend to profit when VRP is elevated and compress toward its mean. Strategies that buy volatility tend to profit when VRP is low and risk materializes.
For systematic traders, VRP provides a regime filter for other strategies. Momentum strategies may benefit from different parameters in high versus low VRP environments. Mean reversion strategies in VRP itself can form the basis of a complete trading system.
LIMITATIONS AND CONSIDERATIONS
No indicator provides perfect foresight, and the VRP is no exception. Several limitations deserve attention.
The VRP measures a relationship between two estimates, each subject to measurement error. The VIX represents expectations that may prove incorrect. Realized volatility calculations depend on the chosen method and lookback period.
Mean reversion tendencies hold over longer time horizons but provide limited guidance for short-term timing. VRP can remain extreme for extended periods, and mean reversion signals can generate losses if the extremity persists or intensifies.
The indicator is calibrated for equity markets, specifically the S&P 500. Application to other asset classes requires recalibration of thresholds and potentially different data sources.
Historical relationships between VRP and subsequent returns, while statistically robust, do not guarantee future performance. Structural changes in markets, options pricing, or investor behavior could alter these dynamics.
STATISTICAL OUTPUTS
The indicator presents comprehensive statistics including current VRP level, implied volatility from VIX, realized volatility from the selected method, current regime classification, number of bars in the current regime, percentile ranking over the lookback period, Z-score relative to recent history, mean VRP over the lookback period, realized volatility term structure slope, VRP momentum, mean reversion signal status, and overall market bias interpretation.
Color coding throughout the indicator provides immediate visual interpretation. Green tones indicate elevated VRP associated with fear and potential opportunity. Red tones indicate compressed or negative VRP associated with complacency or active stress. Neutral tones indicate normal market conditions.
ALERT CONDITIONS
The indicator provides alerts for regime transitions, extreme statistical readings, term structure inversions, mean reversion signals, and momentum shifts. These can be configured through the TradingView alert system for real-time monitoring across multiple timeframes.
REFERENCES
Bakshi, G., and Kapadia, N. (2003). Delta-Hedged Gains and the Negative Market Volatility Risk Premium. Review of Financial Studies, 16(2), 527-566.
Bollerslev, T., Tauchen, G., and Zhou, H. (2009). Expected Stock Returns and Variance Risk Premia. Review of Financial Studies, 22(11), 4463-4492.
Carr, P., and Wu, L. (2009). Variance Risk Premiums. Review of Financial Studies, 22(3), 1311-1341.
Garman, M. B., and Klass, M. J. (1980). On the Estimation of Security Price Volatilities from Historical Data. Journal of Business, 53(1), 67-78.
Mixon, S. (2007). The Implied Volatility Term Structure of Stock Index Options. Journal of Empirical Finance, 14(3), 333-354.
Parkinson, M. (1980). The Extreme Value Method for Estimating the Variance of the Rate of Return. Journal of Business, 53(1), 61-65.
MTF S/R Array - Full CustomA clean, institutional-style multi-timeframe support and resistance indicator designed for precision trading decisions. Plots previous and current period levels with full customization for backtesting and live trading.
━━━━━━━━━━━━━━━━━━━━━━
WHAT IT PLOTS
━━━━━━━━━━━━━━━━━━━━━━
MONTHLY
- Previous Month High / Low / Close
- Previous Month Highest Closing Price
- Current Month High / Low / Highest Close
WEEKLY
- Previous Week High / Low / Close
- Current Week High / Low
DAILY
- Previous Day High / Low / Close
- Current Day High / Low
SESSIONS (Full Session - EST)
- Asian: 7pm - 4am
- London: 3am - 12pm
- New York: 8am - 5pm
OPENING RANGE
- Monday/Tuesday combined high and low
- Clean box visualization for weekly initial balance
━━━━━━━━━━━━━━━━━━━━━━
WHY THESE LEVELS MATTER
━━━━━━━━━━━━━━━━━━━━━━
Institutions and smart money reference these key levels for:
- Liquidity targets
- Stop hunts
- Reversal zones
- Trend continuation entries
Previous period levels act as magnets for price. Current levels show where the battle is happening now.
━━━━━━━━━━━━━━━━━━━━━━
FULL CUSTOMIZATION
━━━━━━━━━━━━━━━━━━━━━━
Every level type has independent controls:
- Show/Hide Previous and Current separately
- Extend Bars - control how far each level stretches
- Line Width - adjust thickness per level
- Transparency - fade previous levels for clarity
- Colors - separate colors for High/Low vs Close
Additional settings:
- Labels on/off with size and style options
- Info table with position and size controls
- Opening range box transparency and border width
━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━
1. Use on lower timeframes (1m, 5m, 15m) to see HTF levels
2. Watch for price reactions at previous period highs/lows
3. Look for session high/low sweeps followed by reversals
4. Use Monday/Tuesday opening range for weekly bias and targets
5. Previous levels extend further back for backtesting context
━━━━━━━━━━━━━━━━━━━━━━
TIPS
━━━━━━━━━━━━━━━━━━━━━━
- Increase "Prev Extend Bars" on monthly/weekly to see levels across more history
- Use higher transparency on previous levels to keep chart clean
- Turn off sessions you don't trade to reduce clutter
- The info table shows all values at a glance - position it where it doesn't block price action
━━━━━━━━━━━━━━━━━━━━━━
BEST FOR
━━━━━━━━━━━━━━━━━━━━━━
- ICT / Smart Money Concepts traders
- Session-based strategies
- Swing traders using HTF levels on LTF entries
- Anyone who wants clean, customizable S/R levels
Works on Forex, Crypto, Stocks, Futures, and Indices.
Superior-Range Bound Renko - Strategy - 11-29-25 - SignalLynxSuperior-Range Bound Renko Strategy with Advanced Risk Management Template
Signal Lynx | Free Scripts supporting Automation for the Night-Shift Nation 🌙
1. Overview
Welcome to Superior-Range Bound Renko (RBR) — a volatility-aware, structure-respecting swing-trading system built on top of a full Risk Management (RM) Template from Signal Lynx.
Instead of relying on static lookbacks (like “14-period RSI”) or plain MA crosses, Superior RBR:
Adapts its range definition to market volatility in real time
Emulates Renko Bricks on a standard, time-based chart (no Renko chart type required)
Uses a stack of Laguerre Filters to detect genuine impulse vs. noise
Adds an Adaptive SuperTrend powered by a small k-means-style clustering routine on volatility
Under the hood, this script also includes the full Signal Lynx Risk Management Engine:
A state machine that separates “Signal” from “Execution”
Layered exit tools: Stop Loss, Trailing Stop, Staged Take Profit, Advanced Adaptive Trailing Stop (AATS), and an RSI-style stop (RSIS)
Designed for non-repainting behavior on closed candles by basing execution-critical logic on previous-bar data
We are publishing this as an open-source template so traders and developers can leverage a professional-grade RM engine while integrating their own signal logic if they wish.
2. Quick Action Guide (TL;DR)
Best Timeframe:
4 Hours (H4) and above. This is a high-conviction swing-trading system, not a scalper.
Best Assets:
Volatile instruments that still respect market structure:
Bitcoin, Ethereum, Gold (XAUUSD), high-volatility Forex pairs (e.g., GBPJPY), indices with clean ranges.
Strategy Type:
Volatility-Adaptive Trend Following + Impulse Detection.
It hunts for genuine expansion out of ranges, not tiny mean-reversion nibbles.
Key Feature:
Renko Emulation on time-based candles.
We mathematically model Renko Bricks and overlay them on your standard chart to define:
“Equilibrium” zones (inside the brick structure)
“Breakout / impulse” zones (when price AND the impulse line depart from the bricks)
Repainting:
Designed to be non-repainting on closed candles.
All RM execution logic uses confirmed historical data (no future bars, no security() lookahead). Intrabar flicker during formation is allowed, but once a bar closes the engine’s decisions are stable.
Core Toggles & Filters:
Enable Longs and Shorts independently
Optional Weekend filter (block trades on Saturday/Sunday)
Per-module toggles: Stop Loss, Trailing Stop, Staged Take Profits, AATS, RSIS
3. Detailed Report: How It Works
A. The Strategy Logic: Superior RBR
Superior RBR builds its entry signal from multiple mathematical layers working together.
1) Adaptive Lookback (Volatility Normalization)
Instead of a fixed 100-bar or 200-bar range, the script:
Computes ATR-based volatility over a user-defined period.
Normalizes that volatility relative to its recent min/max.
Maps the normalized value into a dynamic lookback window between a minimum and maximum (e.g., 4 to 100 bars).
High Volatility:
The lookback shrinks, so the system reacts faster to explosive moves.
Low Volatility:
The lookback expands, so the system sees a “bigger picture” and filters out chop.
All the core “Range High/Low” and “Range Close High/Low” boundaries are built on top of this adaptive window.
2) Range Construction & Quick Ranges
The engine constructs several nested ranges:
Outer Range:
rangeHighFinal – dynamic highest high
rangeLowFinal – dynamic lowest low
Inner Close Range:
rangeCloseHighFinal – highest close
rangeCloseLowFinal – lowest close
Quick Ranges:
“Half-length” variants of those, used to detect more responsive changes in structure and volatility.
These ranges define:
The macro box price is trading inside
Shorter-term “pressure zones” where price is coiling before expansion
3) Renko Emulation (The Bricks)
Rather than using the Renko chart type (which discards time), this script emulates Renko behavior on your normal candles:
A “brick size” is defined either:
As a standard percentage move, or
As a volatility-driven (ATR) brick, optionally inhibited by a minimum standard size
The engine tracks a base value and derives:
brickUpper – top of the emulated brick
brickLower – bottom of the emulated brick
When price moves sufficiently beyond those levels, the brick “shifts”, and the directional memory (renkoDir) updates:
renkoDir = +2 when bricks are advancing upward
renkoDir = -2 when bricks are stepping downward
You can think of this as a synthetic Renko tape overlaid on time-based candles:
Inside the brick: equilibrium / consolidation
Breaking away from the brick: momentum / expansion
4) Impulse Tracking with Laguerre Filters
The script uses multiple Laguerre Filters to smooth price and brick-derived data without traditional lag.
Key filters include:
LagF_1 / LagF_W: Based on brick upper/lower baselines
LagF_Q: Based on HLCC4 (high + low + 2×close)/4
LagF_Y / LagF_P: Complex averages combining brick structures and range averages
LagF_V (Primary Impulse Line):
A smooth, high-level impulse line derived from a blend of the above plus the outer ranges
Conceptually:
When the impulse line pushes away from the brick structure and continues in one direction, an impulse move is underway.
When its direction flips and begins to roll over, the impulse is fading, hinting at mean reversion back into the range.
5) Fib-Based Structure & Swaps
The system also layers in Fib levels derived from the adaptive ranges:
Standard levels (12%, 23.6%, 38.2%, 50%, 61%, 76.8%, 88%) from the main range
A secondary “swap” set derived from close-range dynamics (fib12Swap, fib23Swap, etc.)
These Fibs are used to:
Bucket price into structural zones (below 12, between 23–38, etc.)
Detect breakouts when price and Laguerre move beyond key Fib thresholds
Drive zSwap logic (where a secondary Fib set becomes the active structure once certain conditions are met)
6) Adaptive SuperTrend with K-Means-Style Volatility Clustering
Under the hood, the script uses a small k-means-style clustering routine on ATR:
ATR is measured over a fixed period
The range of ATR values is split into Low, Medium, High volatility centroids
Current ATR is assigned to the nearest centroid (cluster)
From that, a SuperTrend variant (STK) is computed with dynamic sensitivity:
In quiet markets, SuperTrend can afford to be tighter
In wild markets, it widens appropriately to avoid constant whipsaw
This SuperTrend-based oscillator (LagF_K and its signals) is then combined with the brick and Laguerre stack to confirm valid trend regimes.
7) Final Baseline Signals (+2 / -2)
The “brain” of Superior RBR lives in the Baseline & Signal Generation block:
Two composite signals are built: B1 and B2:
They combine:
Fib breakouts
Renko direction (renkoDir)
Expansion direction (expansionQuickDir)
Multiple Laguerre alignments (LagF_Q, LagF_W, LagF_Y, LagF_Z, LagF_P, LagF_V)
They also factor in whether Fib structures are expanding or contracting.
A user toggle selects the “Baseline” signal:
finalSig = B2 (default) or B1 (alternate baseline)
finalSig is then filtered through the RM state machine and only when everything aligns, we emit:
+2 = Long / Buy signal
-2 = Short / Sell signal
0 = No new trade
Those +2 / -2 values are what feed the Risk Management Engine.
B. The Risk Management (RM) Engine
This script features the Signal Lynx Risk Management Engine, a proprietary state machine built to separate Signal from Execution.
Instead of firing orders directly on indicator conditions, we:
Convert the raw signal into a clean integer (Fin = +2 / -2 / 0)
Feed it into a Trade State Machine that understands:
Are we flat?
Are we in a long or short?
Are we in a closing sequence?
Should we permit re-entry now or wait?
Logic Injection / Template Concept:
The RM engine expects a simple integer:
+2 → Buy
-2 → Sell
Everything else (0) is “no new trade”
This makes the script a template:
You can remove the Superior RBR block
Drop in your own logic (RSI, MACD, price action, etc.)
As long as you output +2 or -2 into the same signal channel, the RM engine can drive all exits and state transitions.
Aggressive vs Conservative Modes:
The input AgressiveRM (Aggressive RM) governs how we interpret signals:
Conservative Mode (Aggressive RM = false):
Uses a more filtered internal signal (AF) to open trades
Effectively waits for a clean trend flip / confirmation before new entries
Minimizes whipsaw at the cost of fewer trades
Aggressive Mode (Aggressive RM = true):
Reacts directly to the fresh alert (AO) pulses
Allows faster re-entries in the same direction after RM-based exits
Still respects your pyramiding setting; this script ships with pyramiding = 0 by default, so it will not stack multiple positions unless you change that parameter in the strategy() call.
The state machine enforces discipline on top of your signal logic, reducing double-fires and signal spam.
C. Advanced Exit Protocols (Layered Defense)
The exit side is where this template really shines. Instead of a single “take profit or stop loss,” it uses multiple, cooperating layers.
1) Hard Stop Loss
A classic percentage-based Stop Loss (SL) relative to the entry price.
Acts as a final “catastrophic protection” layer for unexpected moves.
2) Standard Trailing Stop
A percentage-based Trailing Stop (TS) that:
Activates only after price has moved a certain percentage in your favor (tsActivation)
Then trails price by a configurable percentage (ts)
This is a straightforward, battle-tested trailing mechanism.
3) Staged Take Profits (Three Levels)
The script supports three staged Take Profit levels (TP1, TP2, TP3):
Each stage has:
Activation percentage (how far price must move in your favor)
Trailing amount for that stage
Position percentage to close
Example setup:
TP1:
Activate at +10%
Trailing 5%
Close 10% of the position
TP2:
Activate at +20%
Trailing 10%
Close another 10%
TP3:
Activate at +30%
Trailing 5%
Close the remaining 80% (“runner”)
You can tailor these quantities for partial scaling out vs. letting a core position ride.
4) Advanced Adaptive Trailing Stop (AATS)
AATS is a sophisticated volatility- and structure-aware stop:
Uses Hirashima Sugita style levels (HSRS) to model “floors” and “ceilings” of price:
Dungeon → Lower floors → Mid → Upper floors → Penthouse
These levels classify where current price sits within a long-term distribution.
Combines HSRS with Bollinger-style envelopes and EMAs to determine:
Is price extended far into the upper structure?
Is it compressed near the lower ranges?
From this, it computes an adaptive factor that controls how tight or loose the trailing level (aATS / bATS) should be:
High Volatility / Penthouse areas:
Stop loosens to avoid getting wicked out by inevitable spikes.
Low Volatility / compressed structure:
Stop tightens to lock in and protect profit.
AATS is designed to be the “smart last line” that responds to context instead of a single fixed percentage.
5) RSI-Style Stop (RSIS)
On top of AATS, the script includes a RSI-like regime filter:
A McGinley Dynamic mean of price plus ATR bands creates a dynamic channel.
Crosses above the top band and below the lower band change a directional state.
When enabled (UseRSIS):
RSIS can confirm or veto AATS closes:
For longs: A shift to bearish RSIS can force exits sooner.
For shorts: A shift to bullish RSIS can do the same.
This extra layer helps avoid over-reactive stops in strong trends while still respecting a regime change when it happens.
D. Repainting Protection
Many strategies look incredible in the Strategy Tester but fail in live trading because they rely on intrabar values or future-knowledge functions.
This template is built with closed-candle realism in mind:
The Risk Management logic explicitly uses previous bar data (open , high , low , close ) for the key decisions on:
Trailing stop updates
TP triggers
SL hits
RM state transitions
No security() lookahead or future-bar access is used.
This means:
Backtest behavior is designed to match what you can actually get with TradingView alerts and live automation.
Signals may “flicker” intrabar while the candle is forming (as with any strategy), but on closed candles, the RM decisions are stable and non-repainting.
4. For Developers & Modders
We strongly encourage you to mod this script.
To plug your own strategy into the RM engine:
Look for the section titled:
// BASELINE & SIGNAL GENERATION
You will see composite logic building B1 and B2, and then selecting:
baseSig = B2
altSig = B1
finalSig = sigSwap ? baseSig : altSig
You can replace the content used to generate baseSig / altSig with your own logic, for example:
RSI crosses
MACD histogram flips
Candle pattern detectors
External condition flags
Requirements are simple:
Your final logic must output:
2 → Buy signal
-2 → Sell signal
0 → No new trade
That output flows into the RM engine via finalSig → AlertOpen → state machine → Fin.
Once you wire your signals into finalSig, the entire Risk Management system (Stops, TPs, AATS, RSIS, re-entry logic, weekend filters, long/short toggles) becomes available for your custom strategy without re-inventing the wheel.
This makes Superior RBR not just a strategy, but a reference architecture for serious Pine dev work.
5. About Signal Lynx
Automation for the Night-Shift Nation 🌙
Signal Lynx focuses on helping traders and developers bridge the gap between indicator logic and real-world automation. The same RM engine you see here powers multiple internal systems and templates, including other public scripts like the Super-AO Strategy with Advanced Risk Management.
We provide this code open source under the Mozilla Public License 2.0 (MPL-2.0) to:
Demonstrate how Adaptive Logic and structured Risk Management can outperform static, one-layer indicators
Give Pine Script users a battle-tested RM backbone they can reuse, remix, and extend
If you are looking to automate your TradingView strategies, route signals to exchanges, or simply want safer, smarter strategy structures, please keep Signal Lynx in your search.
License: Mozilla Public License 2.0 (Open Source).
If you make beneficial modifications, please consider releasing them back to the community so everyone can benefit.






















